recherche Solr avec des mots-clés réservés s'échappant Solr
Question
Comment faire une requête champs contenant des mots-clés réservés solr comme « : » dans solr
?Par exemple,
q = 'uri:http://www.example.com'
vomit une erreur pour " http://www.example.com " contenant mot réservé « : «
La solution
Je viens de tester cela et il semble que tout simplement échapper « : » comme « : » le tour est joué:
q = 'uri:http\://www.example.com'
Pour mon l'index de mon propre site j'ai tendance à stocker simplement le chemin de l'URL bien que je sache le domaine moi-même si ce n'était pas un problème pour moi avant. Mais si vous indexez des URL externes puis bien sûr vous avez besoin l'URL complète.
Autres conseils
Escape / remplacer les caractères réservés Lucene lors de l'indexation et de stocker la valeur d'origine dans un champ séparé (stored="true" indexed="false"
dans le schéma). Si vous remplacez les caractères réservés à l'espace, vous aurez http www.example.com
dans le champ indexé et stocké dans http://www.example.com
. En fonction du type de champ indexé, vous seriez en mesure d'interroger la valeur exacte (si elle est une chaîne simple) ou pour les jetons (si elle a l'analyseur).