我已经为我的索引添加了一个同义词令牌过滤器,我认为它按计划工作,但我想要一种方法来确认为每个文档存储的确切值(有些查询不是使用同义词我期望的值,我需要验证在索引时是否存储了正确的值。)
有没有一种标准方法来解决这个问题?
示例:
吉文斯
问题:
如何判断索引文档是否使用PLEASANT作为术语/同义词?
更新
调整来自user3775217的答案(我必须更新语法以适用于ElasticSearch 5.2):
{
"query":{
"term": { "{someFieldToFilterOn}": "{SomeFieldValue}"}
},
"script_fields":{
"terms":{
"script":{
"lang":"groovy",
"inline":"doc[field].values",
"params":{
"field":"{TheFieldIwantIndexedTermsFrom}"
}
}
}
}
}
答案 0 :(得分:2)
我已经准备好几年前的这个查询来查找文档的索引值。您可以使用此查询来了解每个文档的字段索引值。
您需要为每个文档和要检查的文档字段提供doc_id。
curl 'http://localhost:9200/test-idx/_search?pretty=true' -d '{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"_id": "1770"
}
}
]
}
}
}
},
"script_fields": {
"terms": {
"script": "doc[field].values",
"params": {
"field": "input"
}
}
}
}'
希望这有帮助