今天手残把集群里某个索引下大字段xxx (type:text, analyzer:ik_max_word) 的index_options属性由默认的positions改为offsets,跑了一段时间后,因误操作将index_options修改为docs(本来应该是改回positions),接着跑了一段时间发现错误后,再改为offsets。
现在不能对xxx字段使用match_phrase查询了但可以进行match查询,match_phrase查询会提示,
现在问下大大门,能手动修复么?我更新了一部分的文档发现不起作用,除了reindex还有救么?
---
搜了下lucene源码,觉得是某些数据的IndexOptions不是 DOCS_AND_FREQS_AND_POSITIONS , DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS导致的。
现在不能对xxx字段使用match_phrase查询了但可以进行match查询,match_phrase查询会提示,
field \"xxx\" was indexed without position data; cannot run PhraseQuery (phrase=content:\"词1 词2\")
现在问下大大门,能手动修复么?我更新了一部分的文档发现不起作用,除了reindex还有救么?
---
搜了下lucene源码,觉得是某些数据的IndexOptions不是 DOCS_AND_FREQS_AND_POSITIONS , DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS导致的。
3 个回复
liuzhen6835
赞同来自:
dotNetDR_ - elasticsearch 6.x
赞同来自:
而index_options=docs期间写入的数据定位出来太难了,所以目前要恢复该字段的match_phrase只能重建索引或者把全量数据都更新一遍了~~
dotNetDR_ - elasticsearch 6.x
赞同来自:
按正则搜即可得到具体的docs数