Lucene 为什么queryString即使在查询中添加了关键字分析字段也不会给出任何结果
我怀疑查询是如何搜索文档的 当我用精确的查询“什么是1234?”搜索关键字分析字段时,我没有得到任何结果。 但是,如果我在snowball/标准分析字段中搜索“what”,那么我得到了一些结果,并且我还尝试了另一种方法将空间转移到查询中,如“what\is\1234?”,它也给出了一些结果 默认情况下,查询字符串将使用什么分析器,它是使用任何分析器转换用户查询,还是使用用户提供的分析器Lucene 为什么queryString即使在查询中添加了关键字分析字段也不会给出任何结果,lucene,
elasticsearch,Lucene,
elasticsearch,我怀疑查询是如何搜索文档的 当我用精确的查询“什么是1234?”搜索关键字分析字段时,我没有得到任何结果。 但是,如果我在snowball/标准分析字段中搜索“what”,那么我得到了一些结果,并且我还尝试了另一种方法将空间转移到查询中,如“what\is\1234?”,它也给出了一些结果 默认情况下,查询字符串将使用什么分析器,它是使用任何分析器转换用户查询,还是使用用户提供的分析器 请在这里找到我的要点:查询字符串“什么是1234?”找不到结果的原因不是分析器,而是QueryParser q
请在这里找到我的要点:查询字符串“什么是1234?”找不到结果的原因不是分析器,而是QueryParser
query\u字符串
使用。查询解析器将把该查询解释为三个独立的查询。也就是说
"query" : "what is 1234?"
等于:
"query" : "what OR is OR 1234?"
如果您想执行短语查询,则需要将其括在引号中,例如(我相信您还需要将分析器设置为关键字分析器,这样短语就不会被标记化,从而再次阻止匹配):
或者,最好不要使用query\u字符串
query。相反,使用术语
查询,尤其是在查询关键字字段时,如:
"term" : { "message_keyword" : "what is 1234?" }
查询字符串“什么是1234?”找不到结果的原因不是分析器,而是QueryParser
query\u字符串
使用。查询解析器将把该查询解释为三个独立的查询。也就是说
"query" : "what is 1234?"
等于:
"query" : "what OR is OR 1234?"
如果您想执行短语查询,则需要将其括在引号中,例如(我相信您还需要将分析器设置为关键字分析器,这样短语就不会被标记化,从而再次阻止匹配):
或者,最好不要使用query\u字符串
query。相反,使用术语
查询,尤其是在查询关键字字段时,如:
"term" : { "message_keyword" : "what is 1234?" }