有人可以向我们举例说明如何使用Lucene.net搜索短语吗?
假设我在索引中有一个带有字段“name”的文档,值为“Jon Skeet”。现在我希望能够在搜索“jon skeet”时找到该文档。
答案 0 :(得分:4)
您可以使用proximity search查找彼此相距一定距离的字词。 Lucene查询语法看起来像这个"jon skeet"~3
,意思是在彼此的三个单词中找到“jon”和“diaet”。使用这种语法,相对顺序无关紧要; “jon q.sibet”,“skeet,q.jon”和“jon skeet”都将匹配。
如果您有一个要作为单个令牌处理的短语列表,则需要在分析仪中处理。例如,您希望将“近东”,“中东”和“远东”视为单独的代币。你需要编写一个具有前瞻性的分析器,这样它就可以将这些短语看作是一个单词。此分析器既可用于索引器,也可用于搜索应用程序中的用户输入。