zoukankan      html  css  js  c++  java
  • ElasticSearch


    1、ElasticSearch

    1.1.概念 

     

    1.2.ElasticSearch与MySQL的比较

    • MySQL有事务性,而ElasticSearch没有事务性,所以你删了的数据是无法恢复的。
    • ElasticSearch没有物理外键这个特性, ,如果你的数据强一致性要求比较高,还是建议慎用
    • ElasticSearch和MySql分工不同, MySQL负责存储数据, ElasticSearch负责搜索数据 

    1.3.为什么要使用Elasticsearch?​

    因为在我们商城中的数据,将来会非常多,所以采用以往的模糊查询,模糊查询前置配置,会放弃索引,导致商品查询是全表扫面,在百万级别的数据库中,效率非常低下,而我们使用ES做一个全文索引,我们将经常查询的商品的某些字段,比如说商品名,描述、价格还有id这些字段我们放入我们索引库里,可以提高查询速度。 

    2.倒排索引

    2.1.Elasticsearch中的倒排索引是什么? 

    倒排索引:将各个文档中的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)的对应关系,形成的产物 。

    倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。倒排索引是一种像数据结构一样的散列图,可将用户从单词导向文档或网页。它是搜索引擎的核心。其主要目标是快速搜索从数百万文件中查找数据。

    2.2.ElasticSearch数据的存储和搜索原理

    2.3.数据库查询存在的问题

    1. 性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低
    2. 功能弱:如果以”华为手机“作为条件,查询不出来数据

    2.4. ElasticSearch的相关内容

    索引 (indices) -----> database

    文档类型(type) ----> table ,(文档类型官方9版本以后会删除,7版本给了默认值 _doc)

    文档(document) -----> 行数据

    域(field) ------> column 列

    映射(mapping) -----> 添加数据库表的列的时候指定的列的相关属性。

    2.4.支持restful风格

    Restful风格就是【同一个url】根据请求方式的不同,实现不同的功能。

    GET----->查询

    POST--->新增

    PUT---->修改

    DELETE-->删除

     2.5.相关API

    (1)MatchAllQuery:查询所有

    (2)TermQuery:根据用户输入的关键字,和词条进行完全等值匹配,如果有服务的词条则返回对应的数据。

    (3)MatchQuery:先把keywords进行分词,然后拿着分词的结果再和索引中的词条进行匹配,匹配成功后,可以根据你指定的方式来取交集/并集,查询的是一个域中的词条

    (4)RangeQuery:范围查询,有什么用, 价格查询 20000-30000

    (5)QueryString:先把keywords进行分词,然后拿着分词的结果再和索引中的词条进行匹配,匹配成功后,可以根据你指定的方式来取交集/并集,同时可以查询多个域的词条。 一个关键字,查询匹配多个域。

    (6)boolQuery:对多个查询条件连接。连接方式:
    must(and):条件必须成立
    must_not(not):条件必须不成立
    should(or):条件可以成立
    filter:条件必须成立,性能比must高。不会计算得分

    -------以上需要重点掌握

    WildcardQuery

    RegexpQuery

    PrefixQuery

     

    MatchQuery:

     

     QueryString:

     

     boolQuery:

  • 相关阅读:
    ADO.NET 数据连接查询
    弹出消息对话框类
    C# 火星文转化 算法 dictionary 的使用案例
    微软官方的SqlHelper
    jsHelper
    【VC++积累】之六、MFC简要剖析
    C# 统计文章中字符的种类和个数 哈希表和字典的使用
    C# NetHelper
    C# XML操作类 XmlHelper
    【VS++积累】之七、黑客编程之匿名管道
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/12736090.html
Copyright © 2011-2022 走看看