【发布时间】:2016-01-05 03:36:01
【问题描述】:
我的索引中有一个嵌套字段 source 看起来像这样:
"source": [
{
"name": "source_c","type": "type_a"
},
{
"name": "source_c","type": "type_b"
}
]
我用query_string查询和simple_query_string查询查询type_a得到了两个不同的结果。
查询字符串
{
"size" : 3,
"query" : {
"bool" : {
"filter" : {
"query_string" : {
"query" : "source:\"source.type:=\"type_a\"\""
}
}
}
}
}
我在 294088 个文档中获得了 163459 个点击。
simple_query_string
{
"size": 3,
"query": {
"bool": {
"filter": {
"simple_query_string": {
"query": "source:\"source.type:=\"type_a\"\""
}
}
}
}
}
我在 294088 个文档中获得了 163505 个点击。
我只随机制作了三种不同的类型type_a,type_b,type_c。所以我不得不说 163459 和 163505 在 294088 文档中差别很小。
我在Elasticsearch Reference [2.1] 中没有得到任何信息
与常规 query_string 查询不同,simple_query_string 查询永远不会抛出异常,并且会丢弃查询的无效部分。
我认为这不是造成差异的原因。
我想知道是什么让query_string 和simple_query_string 之间的结果略有不同?
【问题讨论】:
-
字段
type的映射是什么? -
字符串和未分析
-
您使用的查询字符串看起来很奇怪 (
source:\"source.type:=\"type_a\"\"),因为您使用了两次source字段。你确定你的语法吗?此外,您需要知道simple_query_string不使用与query_string相同的查询语法。
标签: elasticsearch lucene