2010-11-02 7 views
2

J'ai indexé une liste de mots tels que 'juste vu', 'juste passé', 'juste rencontré' .. J'ai une liste de phrases et je veux extraire uniquement les phrases qui contiennent ces mots-clés. par exemple 'Je viens de voir un film'. mais je ne veux pas les phrases qui sont comme «j'étais aux USA et j'ai rencontré Obama». Je ne veux que les phrases qui ont des mots-clés consécutifs. Comment puis-je faire en utilisant luenceLucene: rechercher un groupe particulier de mots consécutifs dans une phrase

+1

Avez-vous essayé de chercher avec une phrase, en mettant des citations autour: "juste vu" "juste passé" –

+0

Je passe une phrase 'Je viens de voir un film' ..Et dans mon index il y a des mots clés comme 'juste vu '.so je veux que cette phrase soit sélectionnée. Mais si je passe' j'ai vu un film 'le résultat est vrai. Je veux que le résultat soit vrai seulement si la phrase contient 'juste vu' comme mots consécutifs – Rohit

+0

Pouvez-vous clarifier? On dirait que vous dites: même s'ils cherchent «j'étais aux États-Unis», vous ne voudriez pas que cela trouve quoi que ce soit parce qu'il ne contient pas «juste ___»? (c'est-à-dire que vous voulez filtrer vos critères de recherche?) – Xodarap

Répondre

2

Proximity Search in Lucene

Lucene prend en charge les mots de recherche sont une à une distance spécifique loin. Pour faire une recherche de proximité, utilisez le symbole "~", à la fin d'une phrase. Par exemple l'autre dans un document utiliser la recherche pour rechercher un « apache » et « jakarta » 10 mots:

"jakarta apache"~10 
+0

Hi aron, Je passe une phrase comme un paramètre de recherche au lieu d'un mot et mes mots sont indexés. Donc je veux que la phrase soit vraie si les mots "viens de voir" sont dans la phrase mais les mots doivent être des mots consécutifs dans la phrase par exemple "Je viens de voir un film" devrait retourner vrai et "Je déjeune et je regarde le film "devrait retourner faux. – Rohit

1

Il y a aussi SpanQuery qui donne un bon contrôle sur l'ordre des termes.

+0

dans l'exemple, ils passent un seul mot comme paramètre pour la recherche. Mais je passe la phrase. et les mots sont indexés. – Rohit