2012-06-26 109 views
-2

我在彈性搜索中需要聚合/分面查詢方面的幫助。我已經使用分面查詢來分組結果,但我沒有得到正確計數的分組結果。彈性搜索分面查詢返回不正確的計數

請建議如何從彈性搜索中獲得分組結果。

{ 
    "query" : { 
    "query_string" : {"query" : "pared_cat_id:1"} } , 
    "facets" : { 
     "subcategory" : { 
      "terms" : { 
         "field": "sub_cat_id", 
         "size" : 50, 
         "order" : "term", 
         "all_terms" : true 
        } 
       } 
      }, 
    "from" : 0, 
    "size": 50 
    } 

嘗試爲傳遞的父類別id獲取子類別標識的分組結果。

+3

我不認爲任何人都可以幫助這麼少的細節。至少要顯示你正在運行的查詢以及結果與預期的不同之處。更好的是,拿出一個能夠再現問題的小型測試數據集。 –

回答

0

Elasticsearch faceting查詢在精度方面效果很好,至少我還沒有看到任何問題。
只是幾個問題:

  1. 什麼領域是該字符串或數字,例如給?
  2. 你申請的任何自定義映射或您使用默認的「標準」分析

請註明像"aa" should have count 100 but its 50那種不準確的或有任何其他種類的不準確的?

+0

字段是整數並且在計數方面不準確就像您提到的那樣。如果xyz計數爲20,則顯示爲0或者其位置爲126,如果顯示爲60.未應用任何自定義映射。 – Heera

+0

請發佈您嘗試索引的JSON對象,以便我可以在我的最後複製該對象。 您使用的是哪個版本的ES? – Jagdeep

+0

0.18.4。你可以參考https://groups.google.com/group/elasticsearch/browse_thread/thread/1bb55debdf45247e/e507058cb424ef2f?LNK = GST&Q =小面+計數是+不正確#e507058cb424ef2f – Heera

0

「QUERY_STRING」:{ 「查詢」: 「pared_cat_id:1」}},

這適用於整個數據,而不是在小面計數。

因此,您需要使用方面查詢,您可以在其中指定您在主查詢字符串中指定的相同方法。因此,現在向您顯示的facet計數是基於結果而不應用「query_string」:{「query」:「pared_cat_id:1」}},即。到整個數據。在應用「query_string」後,Incase希望構面計數:{「query」:「pared_cat_id:1」}},請在構面查詢中提供它。

0

如果分片數量大於1,則Elasticsearch facets查詢將返回不正確的計數,因此目前Facets將被棄用,並且將在未來版本中刪除。我們鼓勵您改爲遷移到聚合。

我建議你看看​​博客文章,其中Alex Brasetvik給出了一個很好的描述以及一些關於如何正確使用聚合功能的例子。