2011-12-03 8 views
0

を考えるためのキーワードに重みを追加することができ、私は、そのような検索をしたは、どのように私はスフィンクス

` Comment.search "aabbb "` 

と私も「AB」を含む結果を取得したいです; は、だから私はそのようにやった:

` Comment.search "aabbb ab"` 

を、私は結果aabbbabが混合された、実際には、私がabaabbbショーと一致する結果を作りたい、つまり、高い優先順位を持っています。

私は、スフィンクスがテーブルのフィールドに重みを付け加えることができると知っています。たとえば、コメントの名前に10を追加し、コメントのコンテンツに20を追加します。クエリの処理に重みを加えることは可能ですか?

答えて

0

スフィンクスは特定の検索フレーズを重み付けする能力がありません。私は恐れています。あなたがしようとしていることは不可能です。

また、スフィンクスがデフォルトで使用するAND論理ということは注目に値します - あなたはaabbb OR ABのいずれかと一致する結果をしたい場合、あなたはおそらく使用することをお勧めします:を任意の一致モード:

Comment.search "aabbb ab", :match_mode => :any 
+0

ああ、?ありがとう、それを行うための他の方法? – dexterdeng

+0

特定のフレーズを重み付けする他の方法はありますか?スフィンクスを使用していない、いいえ。 ORロジックを使用する他の方法?拡張マッチモードではそれが可能ですが、ORを適用するには、|を追加する必要があります。 http://sphinxsearch.com/docs/manual-2.0.1.html#extended-syntax – pat

1

残念ながら、これはありますスフィンクスではまだできませんが、重み付けするキーワードを複数回追加することで、同様の動作をクエリに追加できます。例えば

:本当に

"aabbb | aabbb | ab" 
The aabbb is twice more important than ab 
関連する問題