实际开发中,全文搜索引擎是怎样使用的?全文搜索引擎是数据库的外部索引,还是它本身也可以看作一个数据库?

查看 12|回复 0
作者:yodhcn   
我对"全文搜索引擎"的理解是,它本质上也是一个数据库。
例如:Elasticsearch 和 MySQL ,虽然二者在
  • 存储数据的方式(关系型数据库 vs 文档型数据库)
  • 索引方式( B+树 vs 倒排索引)

    上有所不同,但它们的主要功能都是存储 & 查询数据。
    如果将 Elasticsearch 看作数据库,那么 Elasticsearch & MySQL 就是两个数据库。
    我的疑惑是,在 Elasticsearch & MySQL 这两者搭配使用时
    [ol]
  • 数据是怎样存储的?
    按照是否需要模糊搜索,可以将数据库表中的字段分为两类(参与模糊搜索的字段 / 不需要模糊搜索的字段)。那么,Elasticsearch 中是只存储 "参与模糊搜索的字段" 吗?
  • 数据是怎样查询的?
    什么场景下只查询 Elasticsearch?有没有需要同时在 Elasticsearch & MySQL 中查询的场景?
    [/ol]
    例如,实现一个搜索商品的 "高级搜索" 功能,要求除了按照 "商品的名称" 这一字段模糊搜索外,同时还需要:
  • 按照 "商品的卖家"(卖家-商品,一对多)筛选商品
  • 按照 "商品的标签"(标签-商品,多对多)筛选商品
  • 按照 "商品的销量" 排序

    在这个例子里面,只有"商品的名称" 这一字段需要模糊搜索;"商品的卖家" & "商品的标签" 都是商品的 "关系",是按照 "关系" 查找;"商品的销量" 只用来排序
    请问各位老哥,在这种场景下,数据该怎样在 Elasticsearch & MySQL 这两者间存储 & 查询
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部