Эластичный Поиск: как увидеть индексированные данные
У меня была проблема с ElasticSearch и Rails, где некоторые данные не были проиндексированы должным образом из-за attr_protected. Где же упругой поиска, хранения индексированных данных? Было бы полезно проверить, если фактические индексированные данные неверны.
проверка сопоставления с Tire.index('models').mapping не помогает, поле отображается.
7 ответов:
вероятно, самый простой способ изучить ваш кластер ElasticSearch-использовать elasticsearch-head.
вы можете установить ее, выполнив:
cd elasticsearch/ ./bin/plugin -install mobz/elasticsearch-headзатем (при условии, что ElasticSearch уже запущен на вашем локальном компьютере) откройте окно браузера:
http://localhost:9200/_plugin/head/в качестве альтернативы, вы можете просто использовать
curlиз командной строки, например:Проверьте отображение для индекса:
curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1'получить некоторые примеры документов:
curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'см. фактические термины, хранящиеся в определенном поле (т. е. как это поле было проанализировано):
curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1' -d ' { "facets" : { "my_terms" : { "terms" : { "size" : 50, "field" : "foo" } } } }более доступно здесь:http://www.elasticsearch.org/guide
обновление: Sense плагин в чудо
безусловно, самый простой способ написания
curl-стиль команды для Elasticsearch-это плагин Sense в Marvel.он поставляется с подсветкой источник , довольно отступы и автозаполнение.
Примечание: Sense изначально был автономным плагином chrome, но теперь является частью проекта Marvel.
абсолютно самый простой способ увидеть ваши индексированные данные, чтобы просмотреть его в вашем браузере. не требуется загрузка или установка.
Я собираюсь предположить, что ваш Elasticsearch хост
http://127.0.0.1:9200.Шаг 1
перейти к
http://127.0.0.1:9200/_cat/indices?vв списке индексов. Вы увидите что-то вроде этого:Шаг 2
попробуйте получить доступ к нужному индекс:
http://127.0.0.1:9200/products_development_20160517164519304результат будет выглядеть примерно так:
обратите внимание на
aliases, что означает, что мы также можем получить доступ к индексу по адресу:http://127.0.0.1:9200/products_developmentШаг 3
перейти к
http://127.0.0.1:9200/products_development/_search?pretty=1чтобы увидеть ваши данные:
Elasticsearch в данных браузера
Поиск, диаграммы, настройка одним щелчком мыши....
Агрегация Решение
решение проблемы путем группировки данных - ответ DrTech использовал аспекты в управлении этим, но,будет устаревшим в соответствии с Elasticsearch 1.0 ссылка.
Warning Facets are deprecated and will be removed in a future release. You are encouraged to migrate to aggregations instead.фасеты заменяются агрегатами -введено доступным способом в руководстве Elasticsearch, которое загружает пример в sense..
Решением
решение то же самое, за исключением агрегации требуйте
aggsвместоfacetsи количество 0, которое устанавливает ограничение на максимальное целое число -пример кода требует плагин Marvel# Basic aggregation GET /houses/occupier/_search?search_type=count { "aggs" : { "indexed_occupier_names" : { <= Whatever you want this to be "terms" : { "field" : "first_name", <= Name of the field you want to aggregate "size" : 0 } } } }Решение
вот код смысла, чтобы проверить его-пример индекса домов, с типом оккупанта и полем first_name:
DELETE /houses # Index example docs POST /houses/occupier/_bulk { "index": {}} { "first_name": "john" } { "index": {}} { "first_name": "john" } { "index": {}} { "first_name": "mark" } # Basic aggregation GET /houses/occupier/_search?search_type=count { "aggs" : { "indexed_occupier_names" : { "terms" : { "field" : "first_name", "size" : 0 } } } }
ответ
ответ, показывающий соответствующий код агрегации. С двумя ключами в указателе, Джон и Марк.
.... "aggregations": { "indexed_occupier_names": { "buckets": [ { "key": "john", "doc_count": 2 <= 2 documents matching }, { "key": "mark", "doc_count": 1 <= 1 document matching } ] } } ....
инструмент, который очень помогает мне отлаживать ElasticSearch-это ElasticHQ. В основном, это HTML-файл с некоторым JavaScript. Не нужно устанавливать нигде, не говоря уже о самом ES: просто загрузите его, распакуйте int и откройте HTML-файл с помощью браузера.
Не уверен, что это лучший инструмент для ES тяжелых пользователей. Тем не менее, это действительно практично для тех, кто спешит увидеть записи.
Если вы используете Google Chrome, то вы можете просто использовать это расширение с именем как смысл это также инструмент, если вы используете Marvel.
https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig
следуя примеру @JanKlimo, на терминале все, что вам нужно сделать, это:
чтобы увидеть весь индекс:
$ curl -XGET 'http://127.0.0.1:9200/_cat/indices?v'чтобы увидеть содержимое индекса
products_development_20160517164519304:$ curl -XGET 'http://127.0.0.1:9200/products_development_20160517164519304/_search?pretty=1'



Comments