2015-10-13 66 views
2

我調查的可能性從SphinxSearch切換到ElasticSearchElasticSearch:全文搜索變得容易

SphinxSearch有什麼好處 - 全文搜索只是在機器人的相當好的水平上工作。讓它在ElasticSearch上工作並不像我想象的那麼容易。

在我的項目中,我有一個typeahead搜索框,意思是stype Clint E,並看到下拉結果包括Clint Eastwood在第一位。請輸入robert down,首先請參閱Robert Downey Jr.。所有這些我用SphinxSearch開箱即可實現,只需提供我的數據庫憑據和SQL查詢即可提取必要的字段。

在另一方面,ElasticSearch我甚至不能閱讀約Fuzzy Like This Querymatchingpartial matching等了一天後,得到滿意的結果。許多信息,但它不會讓任務更容易。我覺得我需要成爲博士才能在最簡單的層面上工作。

到目前爲止,我結束了這樣的配置

{ 
    "settings": { 
     "analysis": { 
      "analyzer": { 
       "stem": { 
        "tokenizer": "standard", 
        "filter": [ 
         "standard", 
         "lowercase", 
         "stop", 
         "porter_stem" 
        ] 
       } 
      } 
     } 
    }, 
    "mappings": { 
     "movies": { 
      "dynamic": true, 
      "properties": { 
       "title": { 
        "type": "string", 
        "analyzer": "stem" 
       } 
      } 
     } 
    } 
} 

查詢是這樣的:

{ 
    "query": { 
     "query_string": { 
      "query": "clint eastw" 
      "default_field": "title" 
     } 
    } 
} 

但在這種情況下,搜索的質量不令人滿意時在所有 - 回到我的例子,它不能找到Clint Eastwood配置文件,直到我完全鍵入他的名字。

然後我試圖使用

{ 
    "query": { 
     "fuzzy_like_this": { 
      "fields": [ 
       "title" 
      ], 
      "like_text": "clint eastw", 
      "max_query_terms": 25, 
      "fuzziness": 0.5 
     } 
    } 
} 

它可以幫助,但不是很多,現在我能找到我所需要用較短的要求clint eastwo和一些操作與clint eastw但仍不容樂觀參數之後。

所以我想知道,是否有一個簡單的食譜如何烹飪與ElasticSearch全文搜索並獲得體面的質量的結果。我花了一天的時間閱讀,但沒有找到解決方案。

夫婦圖片來演示一下我所說的:

彈性,名字幾乎完全,但沒有預期的結果,請注意,有沒有更好的比賽也是如此。後

Search 1

一封信,彈性找到了!

Search 2

在同一時刻閃耀着獅身人面像:)

Search 3

回答

0

Elasticsearch附帶自動completion suggester。 你不需要把它放到查詢功能中,它的工作方式是在令牌級而不是部分令牌級。 去完成建議,它也支持模糊邏輯。

+0

感謝您的回答。我只是嘗試了一下,它效果更好,當我爲Clint Eastwood輸入'Clint E'但卻沒有快樂時,它會產生結果,例如,當我輸入'Eastwood Clint'時找不到那個人......並且再一次,獅身人面像完成這項工作。 – SmxCde

+0

它看起來像'ElasticSearch'需要太多的努力,使其實際工作。可能它更有能力,但絕對不是快速啓動:( – SmxCde