私は、thinging_sphinx がインデックス作成/検索に正常に機能する Rails アプリを持っています。しかし、部分的な仕事の一致を検索する方法があるかどうか疑問に思っていました. つまり、「Best Report」というタイトルのレポートがあり、「Best」を検索すると、そのレポートが返されます。
質問する
499 次
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 を再構築します。
- レーキ ts:ストップ
- レーキ ts:インデックス
- レーキ ts:開始
(また)
- 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 に答える