ElasticSearch: почему я не могу искать внутри указанного типа c? - PullRequest
0 голосов
/ 02 февраля 2020

Я следую следующему уроку оasticsearch: https://www.elastic.co/blog/a-practical-introduction-to-elasticsearch

Я импортировал Шекспир. json файл в мой поиск elasti c. Когда я попытался выполнить следующий запрос:

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

, я не получил результатов.

Однако, как только я выполнил тот же запрос без "/ scene", я получил много результатов. Похоже, что ElasticSearch не может сфокусировать поиск на конкретном типе данных c (в данном случае "сцена").

Знаете ли вы, что я могу с этим сделать?

1 Ответ

1 голос
/ 02 февраля 2020

TL; DR: учебник устарел, и часть Шекспира больше не работает с последними версиями Elasticsearch (по крайней мере, неполной).

shakesphere - это индекс, который вы хотите найти, а часть /scene в URL-адресе - это тип документа, который вы хотите найти. В предыдущих версиях была возможность хранить несколько типов документов в одном индексе, но он был удален в последних версиях.

При импорте json был импортирован / обработан только один тип документов. И вот почему вы находите что-н. при удалении типа :asticsearch больше не ограничивается типом scene и дает результаты. В ответе будет указан тип каждого документа (всегда один и тот же), и если вы посмотрите на данные в индексе глубже, вы сообщите, что другие типы документов не существуют.

Может быть, пример логов или подойдет вам лучше. Да, и если вы установите kibana, вас спросят, хотите ли вы загрузить некоторые образцы наборов данных, такие как flight, ecommerce et c. Эти же данные также доступны на https://demo.elastic.co

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...