首页 > 解决方案 > ElasticSearch:为什么我不能在特定类型中搜索?

问题描述

我正在关注以下关于弹性搜索的教程: https ://www.elastic.co/blog/a-practical-introduction-to-elasticsearch

我将shakespeare.json 文件导入到我的弹性搜索中。当我尝试运行以下查询时:

POST localhost:9200/shakespeare/scene/_search/
{
    "query":{
        "match" : {
            "play_name" : "Antony"
        }
    }
}

我没有结果。

但是,一旦我在没有“/scene”的情况下运行相同的查询,我得到了很多结果。看起来 ElasticSearch 未能将搜索集中在特定类型的数据(在本例中为“场景”)。

你知道我能做些什么吗?

标签: elasticsearch

解决方案


TL;DR:本教程已过时,莎士比亚部分不再适用于最新版本的 Elasticsearch(至少不完整)。

shakesphere是你要搜索的索引,url的一部分/scene是你要搜索的文档类型。在过去的版本中,可以选择在单个索引中存储多种文档类型,但在最近的版本中已将其删除。

在导入 json 时,只导入/处理了一种类型的文档。这就是为什么你会发现某事。当您删除类型时:elasticsearch 不再局限于scene类型并产生结果。在响应中,将有每个文档的类型(始终相同),如果您更深入地查看索引中的数据,您将通知不存在其他文档类型。

也许日志示例或将更适合您。哦,如果您安装了 kibana,系统会询问您是否要加载一些示例数据集,例如航班、电子商务等。同样的数据也可在https://demo.elastic.co获得


推荐阅读