代码之家  ›  专栏  ›  技术社区  ›  mmiika

在Lucene中搜索短语

  •  3
  • mmiika  · 技术社区  · 17 年前

    有人能给我举一个用Lucene.net搜索短语的例子吗?

    假设我的索引中有一个字段为“name”、值为“Jon Skeet”的文档。现在,我希望在搜索“jon skeet”时能够找到该文档。

    1 回复  |  直到 17 年前
        1
  •  4
  •   erickson    17 年前

    您可以使用 proximity search 查找彼此相距一定距离内的术语。Lucene查询语法如下 "jon skeet"~3 ,意思是在三个单词之间找到“jon”和“skeet”。使用这种语法,相对顺序无关紧要;“乔恩·q·斯凯”、“斯凯,q·乔恩”和“乔恩·斯凯(jon skeet)”都会匹配。

    如果你有一个短语列表,你想把它当作一个单一的标记,你需要在分析器中处理它。例如,您希望将“近东”、“中东”和“远东”视为单独的标记。你需要编写一个具有前瞻性的分析器,这样它就可以把这些短语当作一个单词来处理。此分析器既用于索引器,也用于搜索应用程序中的用户输入。