Lucene查询语法

时间:2016-07-02 02:35:39

标签: lucene

我正在学习Lucene查询语法。我有一个看起来像这样的查询:

black + forest

我的问题是,这个查询意味着什么?这样说:

  • 给我匹配条款" black"和"森林"或
  • 给我匹配术语"森林"可能包括术语" black"。

我试图理解:

之间的区别

+black +forest以及black + forestblack +forest

感谢您帮助我理解这一点。

1 个答案:

答案 0 :(得分:2)

  • +black +forest - 黑人和森林都是必需的条款。两者都必须在任何匹配的文件中找到。

  • black +forest - 森林是必需的术语,黑色不是。这使得术语"黑色"一个应该条款。 最佳匹配通常会匹配这两个字词,但只包含" forest"也会以低分返回。

  • black + forest - 这里的+对查询解析器没有意义,它被解释为另一个要搜索的术语。使用StandardAnalyzer,此术语将被删除,从而有效地进行此查询black forest。这将在两个术语上返回匹配作为最佳结果,并且匹配较低得分。

    如果您使用的分析器没有删除标点符号(例如KeywordAnalyzer),那么您的查询将如下所示:defaultField:black defaultField:+ defaultField:forest