100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java searchterm_elasticsearch – 弹性搜索:“Term” “Match Phrase”和“Query String”之间的差异...

java searchterm_elasticsearch – 弹性搜索:“Term” “Match Phrase”和“Query String”之间的差异...

时间:2022-09-04 11:05:58

相关推荐

java searchterm_elasticsearch – 弹性搜索:“Term” “Match Phrase”和“Query String”之间的差异...

术语查询匹配单个术语,因为它是:不分析值。

所以,它不必根据你索引的情况而降低。

如果您在索引时间提供Bennett并且未分析该值,则以下查询将不返回任何内容:

{

"query": {

"term" : { "user" : "bennett" }

}

}

match_phrase如果为查询字段定义分析器,则查询将分析输入,并查找符合以下标准的文档:

>所有字词必须出现在字段中

>它们必须具有与输入值相同的顺序

例如,如果您索引以下文档(使用字段foo的标准分析器):

{ "foo":"I just said hello world" }

{ "foo":"Hello world" }

{ "foo":"World Hello" }

此match_phrase查询将仅返回第一个和第二个文档:

{

"query": {

"match_phrase": {

"foo": "Hello World"

}

}

}

query_string在默认情况下,在包含多个文本字段的文本的_all字段上查询搜索。最重要的是,它被解析并支持一些运算符(AND / OR …),通配符等(见related syntax)。

作为match_phrase查询,根据查询字段上设置的分析器分析输入。

取消链接match_phrase,分析后获得的术语不必按相同的顺序,除非用户已在输入中使用引号。

例如,使用与以前相同的文档,此查询将返回所有文档:

{

"query": {

"query_string": {

"query": "hello World"

}

}

}

但是此查询将返回与match_phrase查询相同的2个文档:

{

"query": {

"query_string": {

"query": "\"Hello World\""

}

}

}

关于这些查询的不同选项还有很多要说的,请查看相关文档:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。