我在我的索引中添加了同义词令牌过滤器,我认为它可以按计划使用,但是我想要一种方法来确认每个文档存储的确切值(某些查询)不是按照我的期望使用同义词值,我需要验证是否在索引时存储正确的值)。
是否有标准方法可以弄清楚这一点?
示例:
- 在某个时候,我配置了一个尼斯和愉快的同义词。
- 在某个时候,我索引了一个文档,其中包含一个不错的单词。
givens
- _termVectors显示我的文档中的文档中的一词很不错。
- _分析仪的分析显示,表明同义词很好。
问题:
我该如何判断索引文档是否将愉快的文档用作术语/同义词?
update
调整来自User3775217的答案(我必须更新语法以用于Elasticsearch 5.2):
{
"query":{
"term": { "{someFieldToFilterOn}": "{SomeFieldValue}"}
},
"script_fields":{
"terms":{
"script":{
"lang":"groovy",
"inline":"doc[field].values",
"params":{
"field":"{TheFieldIwantIndexedTermsFrom}"
}
}
}
}
}
我已经准备了几年的查询,以找到文档的索引值。您可以使用此查询来了解每个文档中字段中索引的值。
您将需要每个文档和要检查的文档字段。
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"
}
}
}
}'
希望这有帮助