0

私は、thinging_sphinx がインデックス作成/検索に正常に機能する Rails アプリを持っています。しかし、部分的な仕事の一致を検索する方法があるかどうか疑問に思っていました. つまり、「Best Report」というタイトルのレポートがあり、「Best」を検索すると、そのレポートが返されます。

4

2 に答える 2

2

Thinking Sphinx でワイルドカード検索を試すことをお勧めします。

基本的に、ワイルドカード検索の世界を支配する 3 つの設定があります。 * enable_star * min_prefix_len * min_infix_len

  • min_prefix_len => インデックスへの最小単語プレフィックス長
  • min_infix_len => インフィックス インデックスにより、「start*」、「*end」、および「middle」ワイルドカードによるワイルドカード検索を実装できます

注: *前置検索または中置検索のいずれかを有効にするための設定には、*enabled_star と他の 2 つのうちの 1 つが必要です (少なくとも同じインデックスで両方を持つことはできません)*

例えば ​​:

モデル :

class Comment < ActiveRecord::Base

   #define the indexes for your searchable attributes 

  define_index do
   indexes :comment
   enable_star: true
   min_infix_len: 3
   has created_at,updated_at
  end

end

コントローラー:

 class CommentsController < ApplicationController

     def search
      @result = ThinkingSphinx.search "*#{params[:id]}*" ,:classes => [Comment,....] 

     end
    end  

次に、 thinking_sphinx を再構築します。

  1. レーキ ts:ストップ
  2. レーキ ts:インデックス
  3. レーキ ts:開始

(また)

  1. rake ts:rebuild

上記の例では、次のインスタンスが生成されます。

  • Comment.search "ベスト*"

  • Comment.search "Best Rep* "

  • Comment.search " Rep " .. など

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-02-06T08:12:19.553 に答える
1

よくわかりませんが、デフォルトではこのように機能しますが、ここで一致モードを調べることができますhttp://freelancing-god.github.com/ts/en/searching.html

于 2012-04-30T04:42:44.933 に答える