我有一个具有细分的字段,例如:
//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"这是真的,但没有变化。
谢谢
答案 0 :(得分:1)
正如official documentation所示,在多字段中使用include_in_all
毫无意义:
原始字段值将添加到
_all
字段,而不是字段分析器生成的字词。因此,在多字段上设置include_in_all
到true
没有意义,因为每个多字段的值与其父字段完全相同。
使用copy_to
可以是版本< 2.x的选项。但是,将copy_to
与多字段will be ignored as of 2.0一起使用,甚至从2.0.1和2.1开始抛出异常。
您最好直接在firstname.folded
上进行匹配,如果查询该子字段非常重要,只需在主folding
上使用其firstname
分析器即可领域并摆脱子领域。