Documents->Document Type->Solr Command
<delete>
<query>*:*</query>
</delete>
On ne peut faire une recherche que sur un champ text.
bundle:article
ou l'inverse-bundle:article
entity_type:(profile2 OR node)
date:[2014-12-03T00:00:00Z TO 2014-12-03T23:59:59Z]
a_partir_de:[2014-12-03T00:00:00Z TO *]
drm_dates_evenement:"[2014-12-03T00:00:00Z TO 2015-12-03T00:00:00Z]"
drm_dates_evenement:2014-12-10
sm_auteur:"texte avec espace"
recip(ms(NOW,ds_field_ouvrage_date_parution),3.16e-11,1,1)^2'
=> y = a/mx+b- Différence entre gynéco et gynécologie, activer le debug mode pour voir la racine (parsedquery), le premier devra être un synonyme alors que le second a bien une racine donc trouvera tout ce qui commence par gynécolog
ss_nom_du_champ desc|asc
(ne fonctionne pas avec du multivalué)its_field_numero desc|asc
(marche basiquement avec les integer)- Il existe des dynamic field sort_*
- https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html
- https://lucene.apache.org/solr/guide/6_6/common-query-parameters.html
- https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html#TheDisMaxQueryParser-DisMaxParameters
- mm sert à dire si les mots clés recherchés sont en AND ou OR : 0 => OR / 100 => AND
Les stopwords sont les mots insignifiants. Un mot considéré comme insignifiant sera ignoré. Attention, certains mots ne sont insignifiants que dans certains contextes, d’autres encore ont des homonymes signifiants. Par exemple ete peut renvoyer à une saison (plutôt signifiant) ou au participe passé du verbe être (plutôt insignifiant).
L’indexation utilise généralement la lemmatisation (stemming), qui consiste à réduire les mots à leur racine, par exemple “developp” pour retrouver aussi les articles contenant le mot développer quand on cherche avec le mot développement. Cependant, il arrive qu’il y ait des lemmatisations indésirables, indexant sous un même lemme deux mots qui n’ont aucun rapport. Il est possible d’empêcher la lemmatisation de certains mots en les listant dans un fichier protwords.txt.
Permet de rechercher les caractères spéciaux. Exemple "j'apprends" ne peut pas être recherché sans ça. Remplacer dans schema.xml toutes les occurrences de mapping-ISOLatin1Accent.txt par mapping-FoldToASCII.txt.
A ajouter dans <fieldType name="text"><analyzer type="index">
ET <fieldType name="text"><analyzer type="query">
. Cela peut être autre chose que du text.
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
pour gérer les caractères spéciaux<filter class="solr.LengthFilterFactory" min="5" max="100" />
effectue la recherche entre 6 et 100 lettres<filter class="solr.LowerCaseFilterFactory"/>
recherche insensible à la casse<!-- normal <filter class="solr.FrenchLightStemFilterFactory"/> -->
recherche developper ou developpement avec le mot developp<!-- less aggressive: <filter class="solr.FrenchMinimalStemFilterFactory"/> -->
<!-- more aggressive <filter class="solr.SnowballPorterFilterFactory" language="French" protected="protwords.txt"/>
<filter class="solr.ElisionFilterFactory" ignoreCase="true" articles="lang/contractions_fr.txt"/>
enlève "l'" par exemple mais ça marche sans- https://gist.github.com/yannvery/2f5c1b84c96fa463aebf
A ajouter dans <fieldType name="sortString"><analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
évite de se retrouver avec un mot commençant pas "é" à la fin
<types> ... <fieldType name="date_range" class="solr.DateRangeField"/> </types>
<fields> ... <dynamicField name="drs_*" type="date_range" indexed="true" stored="true" multiValued="false"/> <dynamicField name="drm_*" type="date_range" indexed="true" stored="true" multiValued="true"/> </fields>
- Pour voir le score de chaque résultat :
dpm($response)
dans la fonction apachesolr_search_run() - Choper la request et la mettre dans solr et ajouter
&debugQuery=on
et lire "explain" - Regarder la partie highlighting pour voir les mots qui ressortent
- http://www.solrtutorial.com/solr-query-syntax.html
- http://wiki.apache.org/solr/SolrQuerySyntax
- https://wiki.apache.org/solr/SolrRelevancyFAQ
- https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html
- https://lucene.apache.org/solr/guide/6_6/understanding-analyzers-tokenizers-and-filters.html
- https://lucene.apache.org/solr/guide/6_6/language-analysis.html