2017-04-26 7 views
0

私はSolrの初心者です。このようなドキュメントをペイロードでソートしようとしています。ペイロードでスコアを取得する

{ "id": "1", "tags": ["Cat|0.8", "Dog|0.2"] }, 
{ "id": "2", "tags": ["Cat|0.4", "Dog|0.6"] } 

私は、各タグを高めるためにペイロードを使用しようとしているが、すべての情報は、私はそれは少し古いですが分かりました。 Thisは私が見つけた最新の出版物です。

しかし、this, tooが見つかりました。最初の方法よりも新しいものがあるかどうかわかりません。 2番目のリンクでは、私はschema.xmlに追加できると思います。

<fieldType name="tags" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float" delimiter="|"/> 
    </analyzer> 
</fieldType> 

ペイロードが認識されます。しかし、私はそれを確認する方法を知らない、私はその結果がペイロードによってソートされていない "犬"を検索することを参照してください。

{ 
    "responseHeader":{ 
    "status":0, 
    "QTime":1, 
    "params":{ 
     "q":"Dog", 
     "indent":"on", 
     "wt":"json", 
     "_":"1493191003038"}}, 
    "response":{"numFound":2,"start":0,"docs":[ 
     { 
     "id":"1", 
     "tags":["Cat|0.8", 
      "Dog|0.2"], 
     "_version_":1565724328306147328}, 
     { 
     "id":"2", 
     "tags":["Cat|0.4", 
      "Dog|0.6"], 
     "_version_":1565724328307195904}] 
    }} 

私は何をすべきかわかりません...私は最新のSolrバージョンを持っていても最初のチュートリアルに従うべきですか?私の目的は単純です:応答をタグ内のペイロードで並べ替えます。

答えて

0

あなたは次のようになりための最も簡単なパス私見、可能な値またはタグが(数千人以上いない)限られていると仮定:

  1. がために、Solrのことで簡単に使用でき、いくつかの形式にデータをマッサージ例:

    tag_タイプフィールドの
    { "id": "1", "tags": ["Cat", "Dog"], "tag_Cat": "0.8", "tag_Dog":"0.2"} 
    
  2. は、あなたが

  3. (おそらくdocValuesでも)TFLOATにdynamicFieldのtag_のあらゆる可能性をカバーする*、およびインデックスを定義することができます
  4. 必要なときに、関連するフィールド(tag_Cat ...)で簡単にソート(またはブースト)することができます。

+0

問題は、私が仮定することはできません:(。私はタグの数を知らない... – analca3

関連する問題