2016-11-15 11 views
0

私はSOLR 6.2.1を使用して、多値フィールドを持つコアを有している:ブーストSOLR関連性

<field name="tag_ids" type="ints" required="false" indexed="true" stored="true"/> 

これは、クエリなどで、タグIDで文書を検索することができますtag_ids:12。このフィールドには、ドキュメントのタグの関連性によってソートされたタグがあります。私はドキュメントタグの関連性によってソートしたい。

例 - 検索クエリtag_ids:12、ドキュメント:

[ 
{ 
    id: 1, 
    tag_ids:[1298,43,12,89] 
}, 
{ 
    id: 2, 
    tag_ids:[12,574,1,4356] 
}, 
{ 
    id: 3, 
    tag_ids:[77,12,65] 
} 
] 

注文2,3,1との文書を参照したくて。

質問:Apache SOLRの複数値フィールドで一致する位置で注文することはできますか?いくつかのハッキングやプラグインがありますか?

+0

Solrは用語の位置を見ていません。あなたのケースでは、すべてのtag_idに同じスコアがあります。 – Oyeme

+1

おそらく、ユースケースに合わせて独自のQueryParserPluginを作成する必要があります。 – Oyeme

+0

同様のことをしようとしながら、私はSOLRが多値フィールドの要素間で任意の「距離」(どれくらいの、100程度を忘れている)を与えていることに気付きました。 –

答えて

2

あなたがする必要があることは、インデックス時に各タグの重み情報を追加することであり、クエリはそのまま動作します。インデックスへ

各タグと重量、あなたはいくつかの方法があります:

  1. hereは別で、hereはSolrの古いバージョンのための完全な例である、ペイロードで試しを。それ以来、Solr apisが変更されたので、このサンプルを変更する必要があります。
  2. ようになり、あなたの例では、N回に各タグを追加することを知っているのハックを使用します { ID [

    :1、 tag_ids:[1298,1298,1298,1298,43,43 、43,12,12,89] }、{ ID:2、 tag_ids:[12,12,12,12,574,574,1,1,4356] }、{ 番号:3、 tag_ids。 [77,77,77,77,12,12,12,65,65] }

+0

すばらしいおかげで、私が探しているものです。 –

+0

[@Persimmonium](http://stackoverflow.com/users/101762/persimmonium)投稿した2つの解決策のサンプルクエリを投稿することもできますか?前もって感謝します。 –

関連する問題