我有2个question
已建立索引:FIRE_DETECTED
并且SMOKE:DETECTED
在Elasticsearch中
目标
我想搜索query = 'fire'
->结果:FIRE_DETECTED
query = 'dectected'
->结果:FIRE_DETECTED
和SMOKE:DETECTED
一些解决方案
word_delimiter_graph
)filterd_question
:
和分割数据_
filterd_question
字段中最好的解决方案是什么?(如果需要,添加更多解决方案)
同样,在使用Elasticsearch时这确实是一个很好且非常常见的场景,并且随着需求不断变化,并且为了支持它们,我们必须更改在ES中索引数据的方式。
您提到的两种方法都被公司使用,它们都有自己的传球,您必须根据自己的要求选择一种方法。
更改/添加分析仪将需要执行以下步骤才能使其工作:
优点:它不会创建新字段,因此可以节省空间,因此可以更有效,更干净地进行此更改。
缺点是,根据文档数量及其相对复杂的过程,重新索引可能会花费大量时间。
添加一个自定义分析器,然后使用新添加的分析器添加一个新字段
在这种情况下,除非您使用内置分析器,否则还需要关闭/打开索引,但是在这种情况下,您的新文档或正在更新的文档将具有新字段,因此根据新的分析器/逻辑进行搜索会带来部分结果,但这可以根据您的用例而定。
优点:相对简单的方法,在所有情况下都不需要完全重新索引。
缺点:如果不使用旧字段并且复杂性会根据使用情况而有所不同,则会有额外的空间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句