Как просмотреть содержимое индекса ElasticSearch?

Я настроил собственный анализатор и поместил некоторые документы в индекс. Теперь я хочу отлаживать мои настройки, чтобы я мог видеть, какие n-граммы фактически попали в индекс.

Когда я использовал Solr раньше, была возможность увидеть, какие строки были сохранены в индексе как ключи, а также их частота.

Ответ 1

Если вы еще не указали слишком много данных в индекс, вы можете использовать запрос term facet в поле, которое вы хотите отлаживать, чтобы увидеть токены и их частоты:

curl -XDELETE 'http://localhost:9200/test-idx'
echo
curl -XPUT 'http://localhost:9200/test-idx' -d '
{
    "settings": {
        "index.number_of_shards" : 1,
        "index.number_of_replicas": 0
    },
    "mappings": {            
        "doc": {
            "properties": {
                "message": {"type": "string", "analyzer": "snowball"}
            }
        }
    }

}'
echo
curl -XPUT 'http://localhost:9200/test-idx/doc/1' -d '
{
  "message": "How is this going to be indexed?"
}
'
echo
curl -XPOST 'http://localhost:9200/test-idx/_refresh'
echo
curl -XGET 'http://localhost:9200/test-idx/doc/_search?pretty=true&search_type=count' -d '{
    "query": {
        "match": {
            "_id": "1"
        }
    },
    "facets": {
        "tokens": {
            "terms": {
                "field": "message"
            }
        }
    }
}
'
echo