簡體   English   中英

Elasticsearch,輪胎和自動完成

[英]Elasticsearch, tire and autocomplete

美好的一天。 我在使用輪胎的Rails應用程序中有elasticsearch。 我的數據庫中有很多名字。 我想搜索它們,例如search_query:“ alex ivan”,輸出應為[“ Alexander Ivanov”,“ Alex Ivanenko]等。(數據庫的實名)我試圖通過本文實現,但並未進行搜索所以,我做了一個快速hack:

params[:search_query] = params[:search_query].split(" ").map{|a|a<<("*")}.join(" ") 

這是一個好的決定,還是我可以使用分析儀等來做?

這是我使用ElasticSearch時使用分析器搜索企業名稱的過程。 將其放在映射塊內並適當地修改索引-我認為這將為您提供所需的內容:

indexes :name, :type => 'multi_field', :fields => {
  :name => { :type => 'string', :analyzer => 'standard' },
  :"name.exact" => { :type => 'string', :index => :not_analyzed }
}

然后在您的searchquery塊中,類似於:

search do
  query do

    # either a must match for exact match
    boolean(:minimum_number_should_match => 1) do  
      must { string "name:#{<variable>}" }
    end

    # or a broader match
    string "name:#{<variable>}*"
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM