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é « : «

Était-ce utile?

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).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top