1

Rails アプリで Thinking Sphinx を使用して、部分一致を許可するように設定しましたinfix(たとえば、「tray」を検索すると「ashtray」と一致します)。

ただし、完全な単語一致は、中置一致よりも重み (関連性) を高くしたいと考えています。

したがって、「トレイ」の検索で「シルバー トレイ」、「灰皿」、「その他のトレイ」の 3 つの結果が返された場合、関連性で並べ替えたときに「灰皿」が最後の結果になるようにします。

それを行うように Sphinx を構成する方法はありますか?

4

1 に答える 1

1

独自のランカーを定義する必要があります。デフォルトのものは次のようになります。

SPH_RANK_PROXIMITY_BM25 = sum(lcs*user_weight)*1000+bm25

SPH_RANK_BM25 = bm25

SPH_RANK_NONE = 1

SPH_RANK_WORDCOUNT = sum(hit_count*user_weight)

SPH_RANK_PROXIMITY = sum(lcs*user_weight)

SPH_RANK_MATCHANY = sum((word_count+(lcs-1)*max_lcs)*user_weight)

SPH_RANK_FIELDMASK = field_mask

SPH_RANK_SPH04 = sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25

http://sphinxsearch.com/docs/2.0.6/weighting.html

于 2012-11-08T13:26:53.713 に答える