gpt4 book ai didi

elasticsearch - 包含特定字段是否可以更改elasticsearch结果集?

转载 作者:行者123 更新时间:2023-12-02 23:53:12 24 4
gpt4 key购买 nike

如果我从结果中排除特定字段,我有一个ES查询返回414个文档。

如果我包括此字段,则文档数将降至328。

删除的文档是一致的,无论我滚动结果还是直接查询,都会发生这种情况。

减少结果集的字段的字段映射如下所示:

"completion": {
"type": "object",
"enabled": false
}

没什么特别的,我还启用了其他“启用”功能:在此查询中返回正确的错误对象类型字段。

我针对具有相同数据的多个索引进行了测试,以排除损坏(希望如此)。

这个“完成”对象是一个嵌套且被忽略的对象,具有4或5个嵌套级别,但是我又一次发现了其他类似的嵌套对象,它们对于此查询返回的结果都很好。

该查询是414个词的简单词匹配(是的,这很糟糕,我们正在对此进行重新考虑策略):
  var { _scroll_id, hits } = await elastic.search({
index: index,
type: type,
body: shaQuery,
scroll: '10s',
_source_exclude: 'account,layout,surveydata,verificationdata,accounts,scores'
});
while (hits && hits.hits.length) {
// Append all new hits
allRecords.push(...hits.hits)

var { _scroll_id, hits } = await elastic.scroll({
scrollId: _scroll_id,
scroll: '10s'
})
}

查询是:
"query": {
"terms": {
"_id": [
"....",
"....",
"...."
}
}
}

在这个例子中,我只会得到328个结果。如果我在_source_exclude中添加“completion”,那么我将获得完整的设置。

所以,我的问题是:当该字段与搜索完全无关时,在结果中包含一个字段会限制搜索的情况是什么?

#是特定于此示例的,但在查询中保持一致。我只是将它们包括在内,以作为整个问题的背景信息。

同样重要的是,此完成字段在包含和排除的记录之间具有相同的数据和格式,我看不到任何会引起问题的内容。

最佳答案

发现了问题,它是晦涩的。我们看到的是它总是在同一时间失效,并且当对其进行更仔细的检查时,也会出现相同的错误:

{ took: 158,
timed_out: false,
_shards:
{ total: 5,
successful: 4,
skipped: 0,
failed: 1,
failures: [ [Object] ] },
[ { shard: 0,
index: ‘theindexname’,
node: ‘4X2vwouIRriYbQTQcHQ_sw’,
reason:
{ type: ‘illegal_argument_exception’,
reason:
‘cannot write xcontent for unknown value of type class java.math.BigInteger’ } } ]

好的,那很奇怪,我们根本没有使用BigIntegers。但是,由于有了Google的强大功能,elasticsearch问题跟踪器中的该问题才得以揭示:

https://github.com/elastic/elasticsearch/pull/32888

“用于处理BigInteger和BigDecimal的XContentBuilder”是6.3中的一个错误,其中使用BigInteger和BigDecimal的字段将无法序列化,因此在应用源过滤时会中断。我们正在运行6.3。

目前尚不清楚为什么我们的系统会触发此问题,但是升级到6.5可以完全解决问题。

晦涩晦涩,但由于 Javier's持久性而得以解决。

关于elasticsearch - 包含特定字段是否可以更改elasticsearch结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com