我配置了一个自定义分析器并将一些文档放入索引中。现在我想调试我的设置,这样我就可以看到哪些 n-gram 实际进入了索引。
当我之前使用 Solr 时,有可能看到哪些字符串作为键保存在索引中,以及它们的频率。
我配置了一个自定义分析器并将一些文档放入索引中。现在我想调试我的设置,这样我就可以看到哪些 n-gram 实际进入了索引。
当我之前使用 Solr 时,有可能看到哪些字符串作为键保存在索引中,以及它们的频率。
您可以使用以下 CURL 查看任何现有索引。请在运行前将 index-name 替换为您的实际名称,它将按原样运行。
查看索引内容
curl -H 'Content-Type: application/json' -X GET https://localhost:9200/index_name?pretty
并且输出将包括一个索引(参见输出中的设置)及其映射,它看起来像下面的输出 -
{
"index_name": {
"aliases": {},
"mappings": {
"collection_name": {
"properties": {
"test_field": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"settings": {
"index": {
"creation_date": "1527377274366",
"number_of_shards": "5",
"number_of_replicas": "1",
"uuid": "6QfKqbbVQ0Gbsqkq7WZJ2g",
"version": {
"created": "6020299"
},
"provided_name": "index_name"
}
}
}
}
查看该索引下的所有数据
curl -H 'Content-Type: application/json' -X GET https://localhost:9200/index_name/_search?pretty
如果您还没有将太多数据索引到索引中,您可以在要调试的字段上使用 term facet query 来查看标记及其频率:
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
我可以推荐Elasticvue,它是现代的、免费的和开源的。它允许通过浏览器插件非常容易地访问您的 ES 实例(支持 Firefox、Chrome、Edge)。但也有更进一步的方法。
只需确保在 elasticsearch.yml 中设置cors 值即可。
您甚至可以添加术语(索引术语)的大小。看看Elastic Search:如何查看索引数据