2016-11-30 90 views
1

我已經使用Python 2.7 色調包進行了搜索功能,但爲了使其更具可伸縮性,我想使用ElasticSearch。 我想要做的布爾搜索像在Python中製作搜索引擎django

(blue or small) purse and not leather 
  • 我需要草垛或者只是使用ElasticSearch客戶端還不夠嗎?
  • 我該如何做上面的例子那樣複雜的不可預測的布爾搜索(單詞的布爾結構是未知的)?

我在文檔中發現的所有內容都是SearchQuery,它要求我在運行時間之前知道搜索組合。

回答

0

我調查我想通了:

  • 我不需要大海撈針所有。
  • 布爾搜索可以通過彈性搜索中的「簡單查詢搜索」方法完成,但它使用「+ - |」而不是「AND」「NOT」「OR」,所以它只是一個詞替換的問題。
  • 您可以覆蓋管理頁面的搜索以使用elasticsearch,然後對其應用過濾器查詢。但是,彈性搜索每頁可返回不超過10000個結果...您可以讀取多個頁面,但我最終只檢索了前10000個ID(如果結果超過10000個)並將其傳遞給管理員以執行查詢mymodel.objects.filter(id__in=[my_ids])

我不是很高興這樣做,所以如果有人知道更好的辦法,讓我知道。