2017-01-09 7 views
0

私は私のレールアプリで単語を検索するにはelasticsearch-railsとelasticsearch-model gemを使用しています。適切なレスポンスが得られない伸縮性レールがありません

私は検索の大文字と小文字を区別しないようにしたいと思います。複数形から独立している必要があります。私はgoogleで多くの研究をしましたが、分析器を使ってそれをやり遂げる方法を勘案しましたが、成功はしませんでした。だから私は新しい質問を投稿しなければならなかった。ここで

が、私は場所を取るために検索したい私のモデル

require 'elasticsearch/model' 

class Article < ActiveRecord::Base 
    include Elasticsearch::Model 
    include Elasticsearch::Model::Callbacks 

    settings index: { number_of_shards: 1 } do 
    mappings dynamic: 'false' do 
     indexes :title, analyzer: 'english', index_options: 'offsets' 
     indexes :text, analyzer: 'english' 
    end 
    end 

    def self.search(query) 
    __elasticsearch__.search(
     { 
     query: { 
      multi_match: { 
      query: query, 
      fields: ['title^10', 'text'] 
      } 
     }, 
     highlight: { 
      pre_tags: ['<em>'], 
      post_tags: ['</em>'], 
      fields: { 
      title: {}, 
      text: {} 
      } 
     } 
     } 
    ) 
    end 
end 

# Delete the previous articles index in Elasticsearch 
Article.__elasticsearch__.client.indices.delete index: Article.index_name rescue nil 

# Create the new index with the new mapping 
Article.__elasticsearch__.client.indices.create \ 
    index: Article.index_name, 
    body: { settings: Article.settings.to_hash, mappings: Article.mappings.to_hash } 

# Index all article records from the DB to Elasticsearch 
Article.import 

#Article.import force: true 

である私の質問は、私は言葉を検索しますかどのようにしていますか? Tシャツ、Tシャツ、Tシャツはすべて一致する必要があります。 さらなる研究のためのリンクも役立ちます。 は、テーブル内の探索方法の

答えて

0

一つですありがとう:

User.where("firstname ILIKE ? OR lastname ILIKE ?", "%#{params[q]}%", "%#{params[q]}%"); 

User is Model 

params[q] is search query parameter. 
+0

申し訳ありませんが、私はあなたがme.because Iを説明してくださいすることができますそれを取得できませんでした?ルビーで新しいですか? –

+0

テスト用のオープンレールコンソール。 User.where(「firstname ILIKE?or lastname ILIKE?」、「%#{params [q]}%」、「%#{params [q]}」) ここで、Userはモデル名 firstnameとlastnameは属性または列名です params [:q]はクエリパラメータです – puneet18

+0

Model.where( "column_name ILIKE?"、 "%#{query_string}%") – puneet18

関連する問題