2016-09-13 4 views
0

住所(都市、州、...)を持ついくつかのアイテムをSOLRに保存したいと思います。類似度がどのように計算されるかを変更したいと思います。事は、たとえば都市を比較するとき、私はそれらが同じで、それらの文字列が類似していない場合にのみ興味があるということです。方法はありますか?それはカスタム類似点ですか? もしそうなら、誰かがSolr 6.2でどのようにできるのかを教えてください。 ありがとうございます。ロケーションのSOLRカスタム類似点

答えて

0

何かが正確に一致する場合にのみ興味がある場合は、StrFieldを使用してください(StrFieldでは大文字と小文字が区別されるので、大文字と小文字も一致する必要があります)。正確な試合しか得られないので、得点はすべての文書で同じになります。

カスタム類似性クラスを実装する必要があるのは、組み込みの類似性(または関数クエリ)とは異なる方法でドキュメントにスコアを付ける場合だけです。

正確に一致するのは通常のクエリ:city:Frankfurtです。フィールドがStrFieldである限り、そのフィールドには正確にFrankfurtのドキュメントのみが返されます(そして、そのうちの1つにインデックス時間の追加を加えない限り、すべて同じスコアになります)。

また、フィールド(都市​​など)でソートしている場合は、スコア計算がスローされます。

+0

ああ、ok。どうもありがとうございました。 StrFieldは道に見えます。 国はどうですか?州(州= 100)と国(国= 50)の数値がある場合、州100が101に似ているわけではありません。 –

+0

それは同じです。必要に応じて、これらの値を整数フィールドとして索引付けすることができます。これはフィールドでソートする場合に便利です(2の後に10のソートを行います - ソートしない場合でもStrFieldは作業)。 Solrは、値を別のものに変換するための決定論的な処理が必要であるため、(曖昧検索を求めない限り)「似たように」実際にはそうしません。 – MatsLindh

+0

非常に感謝しています。 –

関連する問題