ElasticSearch 全文搜索功能实现指南 - 基于关键词搜索
ElasticSearch 提供多种方式实现基于关键词的全文搜索功能,其中最常用的方式是使用查询 DSL 语句。下面是实现基于关键词的全文搜索功能的步骤:
- 创建索引
在 ElasticSearch 中,需要先创建一个索引来存储数据。可以使用以下命令创建一个名为 'my_index' 的索引:
PUT /my_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
这会创建一个具有单个分片和零个副本的新索引。
- 添加文档
然后可以使用以下命令将文档添加到索引中:
PUT /my_index/_doc/1
{
"title": "ElasticSearch基础教程",
"content": "ElasticSearch是一个开源的分布式搜索引擎,可以快速地搜索、分析和存储大量数据。",
"tags": ["搜索引擎", "分布式", "全文搜索"]
}
这里将一个包含标题、内容和标签的文档添加到了索引中。可以添加多个文档到索引中。
- 搜索文档
接下来,可以使用以下命令搜索包含关键词 'ElasticSearch' 的文档:
GET /my_index/_search
{
"query": {
"match": {
"content": "ElasticSearch"
}
}
}
这个查询使用 'match' 查询类型来搜索包含关键词 'ElasticSearch' 的文档。还可以使用其他查询类型,如 'term'、'range' 等。
- 搜索结果
搜索结果将会返回一个包含匹配文档的 JSON 对象。例如,对于上面的查询,结果可能如下所示:
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.2876821,
"hits": [
{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_score": 0.2876821,
"_source": {
"title": "ElasticSearch基础教程",
"content": "ElasticSearch是一个开源的分布式搜索引擎,可以快速地搜索、分析和存储大量数据。",
"tags": ["搜索引擎", "分布式", "全文搜索"]
}
}
]
}
}
这个 JSON 对象包含了搜索结果的各种信息,如搜索时间、匹配文档数量、匹配得分等。
总之,使用 ElasticSearch 提供的搜索 API,可以轻松地实现基于关键词的全文搜索功能。
原文地址: http://www.cveoy.top/t/topic/oFUX 著作权归作者所有。请勿转载和采集!