【发布时间】:2016-04-20 02:26:18
【问题描述】:
我最近继承了一个 ES 实例,并确保我在发布之前阅读了整本关于 ES 的完整书籍,但恐怕我什至无法获得简单的示例。
我在我们的暂存环境中有一个索引,它展示了无论如何都会返回每个文档的行为 - 我在我们的 QA 环境中有一个类似的索引,它的工作方式与我期望的一样。例如,我正在针对http://staging:9200/people_alias/_search?explain 运行以下查询:
{ "query" :
{ "filtered" :
{ "query" : { "match_all" : {} },
"filter" : { "term" : { "_id" : "34414405382" } } } } }
我在这个暂存环境中注意到的是每个文档的分数都是 1,并且无论我指定什么值,它都会返回索引中的每个文档...使用 ?explain 我看到以下内容:
_explanation: {
value: 1
description: ConstantScore(*:*), product of:
details: [
{
value: 1, description: boost
}, { value: 1, description: queryNorm } ] }
在我的 QA 环境中,它只正确返回我观察到的一条记录 ?explain:
_explanation: {
value: 1
description: ConstantScore(cache(_uid:person#34414405382)), product of:
details: [ {
value: 1,
description: boost
}, {
value: 1,
description: queryNorm
}
]
}
两个索引上的映射几乎相同 - 唯一的区别是我删除了某些字段上的手动字段级提升值,因为我阅读不建议使用字段级提升来支持查询时提升,但这不应该影响对文档 ID 进行过滤的行为(对吗?)
我是否可以从解释输出中的差异中收集到任何线索,或者我应该发布索引映射?我应该考虑检查任何服务器级设置吗?我在 Staging 上使用什么查询并不重要,我可以在其他字段上使用匹配查询和精确匹配查找,Staging 只是不断返回分数为 1.0 的每个结果
我觉得我在我的暂存环境中做了一些非常明显且明显错误的事情。有人可以解释一下 ConstantScore、boost 和 queryNorm 的存在吗?我认为通过查看其他文献中的示例,我会看到诸如词频等内容。
编辑:我从 Elastic Search Head 插件发出查询
【问题讨论】:
-
您能展示一下您是如何运行查询的吗?
-
我正在使用_head插件pasteboard.co/NaasABn.png
标签: elasticsearch