【发布时间】:2015-11-07 02:00:23
【问题描述】:
我有一个包含文档的弹性搜索索引,其中包含带有“重要性”字段的嵌套文档。
我尝试查询嵌套文档并获得父文档的分数,这是嵌套文档的“重要性”字段的总和(我使用“function_score”查询进行此操作)
现在的问题是:我对搜索时使用的术语进行了动态计数。所以查询规范化每次都有不同的因素。这使得调试我的查询变得很困难。
例子
device_1
component_1 (importance: 1)
component_2 (importance: 0.5)
component_3 (importance: 0.2)
component_4 (importance: 1.5)
device_2
component_1 (importance: 0.3)
component_3 (importance: 2)
component_4 (importance: 1)
设备是文档,组件是嵌套文档。
现在,当我搜索“component_3”和“component_2”时,我希望得到以下结果:
device_1, score: 0.7 (0.2 + 0.5)
device_2, score: 2 (2)
但是当我搜索一个或两个或三个组件时,查询规范化因子是不同的。所以我总是得到不同的分数,而且很难调试并找出查询是否做了它应该做的事情。
是否可以禁用查询规范化?还有其他处理固定分数的想法吗?我不需要我的查询具有可比性,我需要它们易于理解。
【问题讨论】:
标签: elasticsearch