Lucene查询语法中所需运算符的含义
我正在学习Lucene查询语法。我有一个如下的查询:Lucene查询语法中所需运算符的含义,lucene,Lucene,我正在学习Lucene查询语法。我有一个如下的查询: black+forest 我的问题是,这个问题是什么意思?这是不是说: 给我匹配的词“黑”和“森林”或 给我一些与“森林”匹配的词,可能包括“黑色” 我试图理解以下两者之间的区别: +黑色+森林和黑色+森林和黑色+森林 感谢您帮助我理解这一点。 +黑色+森林-黑色和森林都是必填项。两者都必须在任何匹配的文档中找到 black+forest-forest是必填项,而black不是。这使得“黑色”一词成为一个应该的条款。最好的匹配通常会同时匹
black+forest
我的问题是,这个问题是什么意思?这是不是说:
- 给我匹配的词“黑”和“森林”或
- 给我一些与“森林”匹配的词,可能包括“黑色”
+黑色+森林
和黑色+森林
和黑色+森林
感谢您帮助我理解这一点。
-黑色和森林都是必填项。两者都必须在任何匹配的文档中找到+黑色+森林
-forest是必填项,而black不是。这使得“黑色”一词成为一个应该的条款。最好的匹配通常会同时匹配这两个术语,但是只返回“forest”的文档,分数较低black+forest
-这里的black+forest
对查询解析器没有任何意义,它被解释为要搜索的另一个术语。使用+
,此术语将被删除,从而使此查询有效地StandardAnalyzer
。这将返回两项比赛的最佳结果,而两项比赛的得分都较低 如果您使用的分析器没有删除标点符号(例如黑森林
),那么您的查询将如下所示:KeywordAnalyzer
defaultField:black defaultField:+defaultField:forest
defaultField:(黑色+森林)
@knutwalker-不,常见错误。QueryParser语法首先生效,空格分割查询子句。这与分析仪无关。子句是在查询解析之后进行分析的。是的,你是对的,至少在6.2之前是这样-我的印象是,最后一个示例没有通过查询解析器,这是我的错误。