gpt4 book ai didi

java - 在 elasticsearch 中搜索 '_all' 下的子字段

转载 作者:行者123 更新时间:2023-11-30 10:49:26 24 4
gpt4 key购买 nike

我有一个分割的字段,例如:

             //name
.startObject(IndexConstants.FIRST_NAME)
.field("type").value("string")
.startObject("fields")
.startObject("folded")
.field("type").value("string")
.field("analyzer").value("folding")
.endObject()
.endObject()

_all 字段只搜索 firstname,而不搜索 firstname.folded。如果我专门查询 .folded 它可以工作,但它是一个包罗万象的查询,所以我不想指定折叠。
我已尝试将“include_in_all”设置为 true 但没有任何变化。

谢谢

最佳答案

official documentation 中所示, 在多字段中使用 include_in_all 是没有意义的:

The original field value is added to the _all field, not the terms produced by a field’s analyzer. For this reason, it makes no sense to set include_in_all to true on multi-fields, as each multi-field has exactly the same value as its parent.

使用 copy_to 可能是版本 <2.x 的一个选项。但是,将 copy_to 与多字段一起使用 will be ignored as of 2.0甚至从 2.0.1 和 2.1 开始抛出异常。

你最好直接在 firstname.folded 上匹配,如果查询那个子字段对你来说真的很重要,只需使用它的 folding 分析器主 firstname 字段并去掉子字段。

关于java - 在 elasticsearch 中搜索 '_all' 下的子字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35446244/

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