当前位置:   article > 正文

ES中遇到的一些问题以及ES与Mysql数据一致性问题_mysql与es数据一致性比对

mysql与es数据一致性比对

项目最近引入ES,优化查询效率。以下记录我在项目中遇到的一些奇怪问题。

1.ES中不能对text类型进行term精准查询。

众所周知text类型的数据在elasticsearch中会进行分词并建立倒排索引,因此它会对每个词进行索引,而不会建立整个句子的索引。

term搜索时会对整个句子作为关键词进行搜索,由于没有建立整个句子的关键词索引,因此无法查找到东西。

更新~

解决方法:在一个text类型的属性下面定义子属性,用field修饰,参考这篇

es的mapping参数-fields - 欢乐豆123 - 博客园 (cnblogs.com)

上图:

可以看到这个字段本身是text属性,但是我们增加了fields,fields里面有keyword子属性,这个属性是keyword类型的,支持term查询,所以要进行term查询的时候就用procurementMode.keyword这样的方式查。

ES与Mysql数据一致性问题

淘宝太细了:mysql 和 es 的5个一致性方案,你知道吗?_es和mysql数据一致性-CSDN博客

有五种解决方案,参考上面这篇博客。

项目中用的是类似异步双写的方法,然后用全量同步的方式进行兜底。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/882798
推荐阅读
相关标签
  

闽ICP备14008679号