Elastic Search

可用应用场景

  • 海量数据分析引擎

  • 站内搜索引擎

  • 数据仓库

单实例配置文件(关联elasticsearch-head) elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

主节点配置文件 elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

cluster.name: momo
node.name: master
node.master: true

network.host: 127.0.0.1

子节点配置文件 elasticsearch.yml

cluster.name: momo
node.name: slave1

network.host: 127.0.0.1
http.port: 8200

discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

集群和节点

索引:含有相同属性的文档集合 类型:索引可以定义一个或多个类型,文档必须属于一个类型 文档:文档是可以被索引的基本数据单位

database table 记录

分片:每个索引都有多个分片,每个分片是一个Lucence索引 备份:拷贝一份分片就可以完成了分片的备份

5个分片一个备份

elasticsearch使用

api基本格式 http://:/<索引>/<类型>/<文档id> get/put/post/delete

非结构的创建 结构化创建

创建索引

插入

指定文档id插入 put方法 localhost:9200/people/man/1

自动产生文档id插入 post方法:localhost:9200/people/man

修改

  • 直接修改文档 post方法 localhost:9200/people/man/1/_update

  • 脚本修改文档 post方法 localhost:9200/people/man/1/_update

删除

  • 删除文档 delete方法 localhost:9200/people/man/1

  • 删除索引 head中动作:删除 delete方法 localhost:9200/people

查询

简单查询 get方法 localhost:9200/book/nover/1

条件查询 post方法 localhost:9200/book/_search 查询所有

查询标题中包含Elasticsearch,降序排序

聚合查询 书籍字数聚合

高级查询

子条件查询 :特定字段查询所指特定值 复合条件查询:以一定的逻辑组合子条件查询

子条件查询 Query context 常用查询 全文本查询 :针对文本类型数据 字段级别查询 :针对结构化数据,如数字、日期等。 post方法:localhost:9200/book/_search

习语匹配

作者和标题都有瓦力的信息

语法查询 { ​ "query":{ ​ "query_string":{ ​ "query":"(ElasticSearch AND 大法) OR Python" ​ } ​ } }

字段级别查询

范围查询

Filter context

数据过滤,会有数据缓存,只有结果,没有程度

复合查询

常用查询

  • 固定分数查询

  • 布尔查询

  • ...more

固定分数查询 post方法:localhost:9200/_search

布尔查询

Last updated

Was this helpful?