Эластичный Поиск: как увидеть индексированные данные



У меня была проблема с ElasticSearch и Rails, где некоторые данные не были проиндексированы должным образом из-за attr_protected. Где же упругой поиска, хранения индексированных данных? Было бы полезно проверить, если фактические индексированные данные неверны.



проверка сопоставления с Tire.index('models').mapping не помогает, поле отображается.

669   7  

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 в списке индексов. Вы увидите что-то вроде этого:

enter image description here

Шаг 2

попробуйте получить доступ к нужному индекс: http://127.0.0.1:9200/products_development_20160517164519304

результат будет выглядеть примерно так:

enter image description here

обратите внимание на aliases, что означает, что мы также можем получить доступ к индексу по адресу: http://127.0.0.1:9200/products_development

Шаг 3

перейти к http://127.0.0.1:9200/products_development/_search?pretty=1 чтобы увидеть ваши данные:

enter image description here

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

    Ничего не найдено.