ES文档索引、查询、分片、文档评分和分析器技术原理
在Elasticsearch中,文档是基本数据存储单位,索引是文档集合,查询是对索引的搜索操作,分片是索引的分布式存储方式,评分是搜索结果排序的依据,分析器是文本分析的工具。
以下是Elasticsearch中这些概念的简要概述和示例代码:
- 创建索引:
PUT /my_index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
- 向索引添加文档:
POST /my_index/_doc/1
{
"title": "Elasticsearch Guide",
"content": "Elasticsearch is a distributed search and analytics engine."
}
- 查询索引中的文档:
GET /my_index/_search
{
"query": {
"match": {
"content": "Elasticsearch"
}
}
}
- 分片逻辑处理文档数据,分片数在索引创建时定义。
- 评分是Elasticsearch搜索结果排序的一个重要指标,基于相关性算法。
- 分析器用于文本分词(Tokenize)、去除停用词(Stop words)、字符串处理等。
PUT /my_index
{
"settings": {
"analysis": {
"char_filter": {
"&_to_and": {
"type": "mapping",
"mappings": ["&=> and"]
}
},
"filter": {
"my_stopwords": {
"type": "stop",
"stopwords": ["the", "a"]
}
},
"analyzer": {
"my_analyzer": {
"type": "custom",
"char_filter": ["html_strip"],
"tokenizer": "standard",
"filter": ["lowercase", "my_stopwords"]
}
}
}
}
}
这段代码定义了一个自定义分析器my_analyzer
,它包含字符过滤器和分词器设置,用于在索引创建时进行文本分析配置。
评论已关闭