2012-09-15 4 views
0

Je travaille avec apache-solr-3.6.0 sur Windows machine. Je voudrais rechercher deux mots avec un certain nombre de mots à part (pas plus que ce nombre). Par exemple: Considérez les phrases suivantes, je voudrais rechercher l'examen Daisy & avec pas plus de 2 mots à part. Je cherchais une telle chose et j'ai essayé Term Proximity.Solr - Recherche de proximité en utilisant le nombre exact de mots en dehors

http://localhost:8983/solr/select/?q="Daisy exam"~2&version=2.2&start=0&rows=10&indent=on&debugQuery=true 

Le résultat que j'ai besoin devrait être l'expression: Daisy has an exam. Mais en utilisant les critères ci-dessus, le résultat a été la dernière phrase 3.

Donc, des idées pour utiliser un nombre exact de mots à part?

Répondre

0

Vérifiez la question connexe ici: Solr proximity ordered vs unordered

Quand vous dites « pas plus de 2 mots en dehors », alors vous devriez avoir la première et la deuxième phrase correspond. Ensuite, votre requête serait "Daisy exam"~1, ce qui correspond à l'examen Daisy et une insertion entre eux (qui est un changement: changements exam position de 2 à 3). Afin d'éviter "Daisy examen" du résultat appariement, vous pouvez ajouter -"Daisy exam" à votre requête. Vous pouvez également ajouter fq=-"Daisy exam" à vos paramètres de chaîne de requête.

+0

Merci pour votre réponse, mais je voudrais que le résultat soit l'expression: «Daisy a un examen» et en utilisant «~ 1» ne permettra pas d'atteindre ce résultat. même en utilisant '~ 2' ne me laissera pas avoir le résultat exact comme s'il y avait une phrase:' 'Daisy exam. '' elle sera incluse, et ce n'est pas ce que je veux. Des idées? – Daisy

+0

Je ne pense pas que cela soit possible avec Solr, car 'q ~ x' correspond aux documents avec des changements inférieurs ou égaux à x. BTW, vous pouvez exclure directement "examen Daisy" dans 'fq' si elle résout le cas. – Mohsen

Questions connexes