1.多条件检索,结果高亮处理 (业务场景 索引库设计 实现流程)

  • 业务场景:在搜索引擎搜索信息的时候,我们输入的搜索关键字会在搜索出来的信息中变颜色,比较醒目
  • 索引库设计:设置查询条件是全文检索查询,指定高亮字段,加上标签
  • 实现流程:对于搜索的关键字加上前端的标签,不同的标签显示不同的高亮效果,在返回的结果显示搜索关键字就会高亮。

    2.按距离排序 查询离我最近的XXX (业务场景 索引库设计 实现流程)

  • 业务场景:在我们点外卖的时候,打车的时候都需要使用距离排序,找到离我们最近的店和车

  • 索引库设计:在条件查询中,设置距离查询的圆心和半径,然后设置排序
  • 实现流程:设置距离查询的圆心和半径,查询符合距离条件的全部信息,然后根据距离进行升序排序。

    3.XXX竞价排名? (业务场景 索引库设计 实现流程)

  • 业务场景:使需要打广告的信息在搜索的返回结果中排名靠钱,百度搜索的商品前几名一般都是加钱了的

  • 索引库设计:需要是否打广告的字段来筛选需要打广告的信息
  • 实现流程:通过搜索过滤出来需要打广告的信息,然后通过加权方式来影响需要打广告的信息的算分,然后通过算分排序把需要打广告的信息排在前面。

    4.聚合查询搜索条件? (业务场景 索引库设计 实现流程)

  • 业务场景:在一些电商平台上,可以统计销售额,分析人均消费

  • 索引库设计:设置size为0,返回结果只包含聚合的结果,设置聚合的名字,类型,字段,数量
  • 实现流程:用一些api来设置一下聚合的条件,然后es就会对需要聚合的信息进行聚合处理,然后返回我们设置好的结果

    5.自动补全及拼音查询? (业务场景 索引库设计 实现流程)

  • 业务场景:当我们在搜索框中输入搜索关键字,但是关键字还没有打出来,只有拼音的时候,会搜索框下面有一系列的提示信息

  • 索引库设计:需要添加分词器设置,添加一个字段用来字段补全
  • 实现流程:根据搜索框中的搜索关键字,查询信息中的用来自动补全的字段中有没有包含关键字,可以返回一个补全的结果,显示在搜索框的下面进行提示

    6.es和mysql数据同步思路?

    使用消息队列,用mq监控mysql数据的更改,一但发生更改就通知es进行相同的更改

    7.es如何保证高可用?(集群介绍)

  • 集群状态同步

  • 节点加入与离开
  • 分片副本同步

    8.es集群中分片和副本介绍?

    主分片可以将数据分布到集群内的所有节点之上,副本用于解决数据高可用的问题

9.es集群中的脑裂现象?

当集群中的主节点宕机失联,集群就会重新选取一个主节点,然后使得前后双主节点分开形成两个集群,造成数据不同步,形成差异

10.es集群中的故障转移? (集群容错)

集群中的master节点监控集群中的节点状态,一旦发现有节点宕机,就会立即将宕机的节点 的数据迁移到其他节点,避免数据丢失