2017-03-06 55 views
0

我已經爲我的索引添加了一個同義詞標記過濾器,我認爲它正在按計劃運行,但我想要一種方法來確認爲每個文檔存儲的確切值(某些查詢沒有使用同義詞值,因爲我期望,並且我需要驗證索引時是否存儲了正確的值)。如何查看索引在文檔中的同義詞?

有沒有一個標準的方法來解決這個問題?

實施例:

  1. 在某些時候我配置爲好的和愉快的同義詞。
  2. 在某個時候,我索引了一個文檔,其中包含NICE一詞。

吉文斯

  • _termvectors顯示在我的文檔中有術語NICE。
  • _analyze爲我的分析儀顯示NICE和PLEASANT是同義詞。

問:

我怎麼能告訴我們,如果索引的文檔使用愉快術語/代名詞?


更新

適應從user3775217答案(我不得不更新語法來ElasticSearch 5.2工作):

{ 
    "query":{ 
    "term": { "{someFieldToFilterOn}": "{SomeFieldValue}"} 
    }, 
    "script_fields":{ 
    "terms":{ 
     "script":{ 
     "lang":"groovy", 
     "inline":"doc[field].values", 
     "params":{ 
      "field":"{TheFieldIwantIndexedTermsFrom}" 
     } 
     } 
    } 
    } 
} 

回答

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" 
     } 
    } 
    } 
}' 

希望這有助於

+0

不會看在文檔字段值只是給我回的字段值從原來的文件呢?我將如何使用它來找出給定文檔的同義詞索引? – wllmsaccnt

+1

字段值將爲您的字段提供索引的所有術語,字段值與_source值不同。就像我們需要推動not_analyzed使用詞彙空間的術語聚合。 – user3775217