ElasticSearch 提供多种方式实现基于关键词的全文搜索功能,其中最常用的方式是使用查询 DSL 语句。下面是实现基于关键词的全文搜索功能的步骤:

  1. 创建索引

在 ElasticSearch 中,需要先创建一个索引来存储数据。可以使用以下命令创建一个名为 'my_index' 的索引:

PUT /my_index
{
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 0
    }
}

这会创建一个具有单个分片和零个副本的新索引。

  1. 添加文档

然后可以使用以下命令将文档添加到索引中:

PUT /my_index/_doc/1
{
    "title": "ElasticSearch基础教程",
    "content": "ElasticSearch是一个开源的分布式搜索引擎,可以快速地搜索、分析和存储大量数据。",
    "tags": ["搜索引擎", "分布式", "全文搜索"]
}

这里将一个包含标题、内容和标签的文档添加到了索引中。可以添加多个文档到索引中。

  1. 搜索文档

接下来,可以使用以下命令搜索包含关键词 'ElasticSearch' 的文档:

GET /my_index/_search
{
    "query": {
        "match": {
            "content": "ElasticSearch"
        }
    }
}

这个查询使用 'match' 查询类型来搜索包含关键词 'ElasticSearch' 的文档。还可以使用其他查询类型,如 'term'、'range' 等。

  1. 搜索结果

搜索结果将会返回一个包含匹配文档的 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,可以轻松地实现基于关键词的全文搜索功能。

ElasticSearch 全文搜索功能实现指南 - 基于关键词搜索

原文地址: http://www.cveoy.top/t/topic/oFUX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录