Searching phrases in Lucene

纵然是瞬间 提交于 2019-12-18 03:45:16

问题


Could somebody point me to an example how to search for phrases with Lucene.net?

Let's say I have in my index a document with field "name", value "Jon Skeet". Now I want to be able to find that document when searching for "jon skeet".


回答1:


You can use a proximity search to find terms within a certain distance of each other. The Lucene query syntax looks like this "jon skeet"~3, meaning find "jon" and "skeet" within three words of each other. With this syntax, relative order doesn't matter; "jon q. skeet", "skeet, q. jon", and "jon skeet" would all match.

If you have a list of phrases that you want to treat as a single token, you need to take care of that in your analyzer. For instance, you want to treat "near east", "middle east", and "far east" as individual tokens. You need to write an analyzer with some lookahead, so that it can treat these phrases as if they were one word. This analyzer is used both in the indexer, and against user input in the search application.



来源:https://stackoverflow.com/questions/343002/searching-phrases-in-lucene

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!