ElasticSearch(ES)相关

1.为什么要使用ElasticSearch?

为了解决传统数据库在“搜索”能力上的瓶颈。

ElasticSearch主要是通过倒排索引使得它擅长模糊、快速、相关性搜索

倒排索引:首先再保存文档是,会进行分词,然后将分词完的词条和文档的id一起储存.

                在查询文档时,通过对关键词进行分词,然后根据分好的词条直接定位文档,再合并结果.

2.ES中查询的关键字有哪些?

match_all: 查询所有

match:查询(分词)

term:查询(不分词)

range:区间查询

bool:复合查询 (must:必须,must_not:不必须,should:应该,filter:筛序文档)

{
  "query": {
    "bool": {
      "must": [
        { "match": { "title": "elasticsearch" } }
      ],
      "filter": [
        { "term": { "status": "published" } },
        { "range": { "publish_date": { "gte": "2023-01-01" } } }
      ]
    }
  }
}
 

3.ES操作字符串的关键字有哪些?

keyword:不分词

text:分词

4.ES中query和filter的区别 ?

在Elasticsearch中,query和filter都用于数据检索.

query不仅会进行查询,而且会计算分值,用于确定相关性

filter判断文档是否匹配条件,不涉及相关性评分。同时覅领头人查询的结果可以被缓存,提高性能

5.如何保证ES和MySQL的数据一致性?

同步双写:再写入MySQL的同时立即将数据存入ES中

异步消息:程序再写入MySQL的之后,也向MQ中传递消息,ES相关程序监听MQ,写入ES

canel:监听MySQL的binlog,当发现写入操作后,立即读取写入ES

logstatsh:将MySQL中的数据实施传输给ES

6.如何优化ES?

合理设计映射,避免过深的嵌套对象

将不需要记分的查询条件放在filter当中,这样可以利用缓存

调整jvm堆内存大小

设置合理的分片和副本数量

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值