谷粒商城集成 elasticsearch
一、elasticsearch 基本概念
- Elasticsearch (简称ES)是一个分布式、restful 风格的搜索和数据分析引擎
索引(indices) |
Databases 数据库 |
类型(type) |
Table 数据表 [7.x废弃] |
文档(Document) |
Row 行 |
字段(Field) |
Columns 列 |
mapping映射 |
schema约束 |
二、elasticsearch 搜索原理
倒排索引
- 步骤
- 数据根据词条进行分词,同时记录文档索引位置
- 将词条相同的数据化进行合并
- 对词条进行排序
- 过程
- 先将搜索词语进行分词,分词后在倒排索引列表查询文档位置(docId),根据docId查询文档数据。
三、elasticsearch 与 Solr 的区别
elasticsearch |
Solr |
开箱即用 |
安装略微复杂 |
自带分布式协调管理功能 |
利用 zookeeper 进行分布式管理 |
仅支持 JSON 格式的数据 |
支持多种格式的数据,比如JSON、XML、CSV |
适用于新兴的实时搜索应用 |
传统搜索应用的有力解决方案 |
四、DSL 语句的基本使用
1. 索引库操作
- 查看所有索引库:GET /_cat/indices?v
- 查看一个索引库:GET/索引库名
- 创建索引库:
PUT /索引库名
{
"settings": {
"number_of_shards": 3, # 主分片数
"number_of_replicas": 2 # 副分片数
}
}
2. 映射操作
- type 字段类型
- index 是否索引:取决于是否以该字段进行搜索
- store 是否存储:取决于搜索结果集中是否展示该字段,es中即使设置为false,依然存储,存储到_source。如果设置为true,会额外保存一份
- analyzer:分词器,这里使用ik分词器:
ik_max_word
或者ik_smart
PUT