2016-01-14 63 views
0

最近,我繼承了ES的實例,並確保我發佈此之前閱讀ES覆蓋到覆蓋一整本書,但我怕我無法得到,甚至簡單的例子來工作。ES不斷返回的每個文檔

我對我們的臨時環境表現出,每一個文檔返回無論是什麼行爲指數 - 我對我們的QA環境類似的指數,就像我希望它。比如我運行下面的查詢對http://staging:9200/people_alias/_search?explain

{ "query" : 
    { "filtered" : 
     { "query" : { "match_all" : {} }, 
      "filter" : { "term" : { "_id" : "34414405382" } } } } } 

我對這個臨時環境注意到什麼是每個文檔的得分爲1,不管它是我指定什麼價值迴歸在我的索引每個文檔.. 。採用解釋,我看到以下內容:??

_explanation: { 
value: 1 
description: ConstantScore(*:*), product of: 
details: [ 
{ 
value: 1, description: boost 
}, { value: 1, description: queryNorm } ] } 

在我的QA環境,正確返回紀錄只有一個我看到的解釋:

_explanation: { 
value: 1 
description: ConstantScore(cache(_uid:person#34414405382)), product of: 
details: [ { 
value: 1, 
description: boost 
}, { 
value: 1, 
description: queryNorm 
} 
] 
} 

映射在兩個索引上幾乎相同 - 唯一的區別是我刪除了某些字段上的手動字段級增強值,因爲我不推薦使用字段級增強來支持查詢時增強,但這不應該影響上述文件ID過濾的行爲(是嗎?)

是否有任何線索,我可以從不同的解釋輸出蒐集或者我應該張貼指數映射?有什麼服務器級別的設置我應該考慮檢查嗎?無論我在舞臺上使用什麼查詢,我都可以在其他字段上使用匹配查詢和精確匹配查找,並且舞臺只是以Score 1.0的形式返回每個結果。

我覺得我在做非常明顯而明顯的事情我的Staging環境中出現錯誤。有人能解釋一下ConstantScore,boost和queryNorm的存在嗎?我從看着其他文獻的例子我想看到的東西像詞頻等認爲

編輯:我是從彈性搜索頭插件

enter image description here

+0

你能展示你如何運行你的查詢? – Val

+0

我使用_head插件http://pasteboard.co/NaasABn.png – blue18hutthutt

回答

7

發出查詢在你的頭上插件,你需要使用POST爲了在有效載荷中發送查詢,否則_search端點被命中,沒有任何約束。

在瀏覽器中,如果打開的開發工具,並期待在網絡選項卡中,你會發現沒有什麼是有效載荷使用GET時發送。

這是一個常見的錯誤的人經常這樣做。某些HTTP客戶端(如curl)使用GET發送有效內容,但其他客戶(例如/head/)則不會。如果您在發送有效負載時使用GET而不是POST,Sense會警告您,並會自動強制POST而不是GET。

所以總結一下,最好總是在你想發送一些有效載荷到你的服務器時使用POST,所以你不必關心你正在使用的HTTP客戶端的行爲。

+0

*嫌額頭*感謝這麼多,我知道這是一些小事 – blue18hutthutt

+0

不用擔心,很樂意幫助! – Val