2016-10-24 13 views
1

私はsolrで確率的な結果を出力しようとしていました。つまり、ページ結果のx%(例:k/n)には属性Aがあります。これを行うための直接的な方法があるかどうかはわかりません。solrで確率的な結果出力を強制する

私は、最初のsolrクエリで属性Aのドキュメントを増やしたいと思っていました。これにより、属性Aを持つ少なくともk個以上の文書が確実に上に来るようにする必要があります。私は次に、k個の要素だけを選び、通常のスコア順で残りのn-k個の要素を選択し、スコアのソートされた出力を返す別のクエリを実行したかったのです。

しかし、属性Aが非常に頻繁に発生すると、最初のクエリであまりにも多くの属性Aドキュメントを持ち出すことになり、実行するドキュメントの数を決めることができなくなるという問題に直面しています。 2番目のクエリ

私はまだsolrに新しいです、そしてうまくいけばこれを考え直しています。それにもかかわらず、あなたのいずれかにsolrと同様の問題があったのですが、これに対して低レイテンシの解決策が見つかりましたか?

+0

あなたは、他の要素とその想像上のデータセットの中で何が高いのかを例に挙げることができますか? –

+0

@LeftyGBaloghねえ、確かに。したがって、ドキュメントの新しさを属性メトリックとして取り上げると、検索結果は関連性がありますが、確率的なものになります。つまり、1ページに10の結果を出力し、結果の鮮度の確率を0.2に設定すると、新鮮な属性を持つ10の結果のうち少なくとも2つが存在するはずです。お役に立てれば – Sachin

答えて

0

私はあなたの基準をすべて適切に考慮すれば、重み付けされた検索がこのトリックを行うと思います。下に作成したサンプルデータをデモコアに読み込んでedismaxの検索を実行して、関連度を0.8、新鮮度を0.2とすると、関連する新しい回答が上に表示されます。 enter image description here

次のように検索のURLは次のとおりです。http://<solr_server>.us-west-2.compute.amazonaws.com:8983/solr/gettingstarted/select?defType=edismax&indent=on&q=*:*&qf=relevance^0.8%20AND%20freshness^0.2&rows=10&start=0&wt=json

私は最初の10に結果セットを制限されますのでご注意ください。

結果とレスポンスヘッダは次のようになります。

{ 
    "responseHeader":{ 
    "status":0, 
    "QTime":6, 
    "params":{ 
     "q":"*:*", 
     "defType":"edismax", 
     "indent":"on", 
     "qf":"relevance^0.8 AND freshness^0.2", 
     "start":"0", 
     "rows":"10", 
     "wt":"json", 
     "_":"1477363414109"}}, 
    "response":{"numFound":35,"start":0,"docs":[ 
     { 
     "id":"1", 
     "name":["JBL Professional Audio"], 
     "relevance":[true], 
     "freshness":[true], 
     "_version_":1549127868117680128}, 
     { 
     "id":"2", 
     "name":["Versatile Multilayer Disc"], 
     "relevance":[true], 
     "freshness":[true], 
     "_version_":1549127868288598016}, 
     { 
     "id":"3", 
     "name":["Key finder"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868290695168}, 
     { 
     "id":"4", 
     "name":["MiniDisc"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868291743744}, 
     { 
     "id":"5", 
     "name":["Entertainment center"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868292792320}, 
     { 
     "id":"6", 
     "name":["TV gateway"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868294889472}, 
     { 
     "id":"7", 
     "name":["Da-Lite Lecterns, Podiums, Racks"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868295938048}, 
     { 
     "id":"8", 
     "name":["American Dynamics CCTV Products"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868301180928}, 
     { 
     "id":"9", 
     "name":["K-box"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868302229504}, 
     { 
     "id":"10", 
     "name":["Wife acceptance factor"], 
     "relevance":[true], 
     "freshness":[false], 
     "_version_":1549127868303278080}] 
    }} 

あなたがドキュメントからロードできるサンプルデータセットは以下の通りです:

<add> 
<doc> 
<field name="id">1</field> 
<field name="name">JBL Professional Audio</field> 
<field name="relevance">true</field> 
<field name="freshness">true</field> 
</doc> 
<doc> 
<field name="id">2</field> 
<field name="name">Versatile Multilayer Disc</field> 
<field name="relevance">true</field> 
<field name="freshness">true</field> 
</doc> 
<doc> 
<field name="id">3</field> 
<field name="name">Key finder</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">4</field> 
<field name="name">MiniDisc</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">5</field> 
<field name="name">Entertainment center</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">6</field> 
<field name="name">TV gateway</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">7</field> 
<field name="name">Da-Lite Lecterns, Podiums, Racks</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">8</field> 
<field name="name">American Dynamics CCTV Products</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">9</field> 
<field name="name">K-box</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">10</field> 
<field name="name">Wife acceptance factor</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">11</field> 
<field name="name">J</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">12</field> 
<field name="name">Location awareness</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">13</field> 
<field name="name">Hybrid Broadcast Broadband TV</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">14</field> 
<field name="name">Comparison of digital media players</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">15</field> 
<field name="name">Coupon-eligible converter box</field> 
<field name="relevance">true</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">16</field> 
<field name="name">Crown Audio</field> 
<field name="relevance">false</field> 
<field name="freshness">true</field> 
</doc> 
<doc> 
<field name="id">17</field> 
<field name="name">Q</field> 
<field name="relevance">false</field> 
<field name="freshness">true</field> 
</doc> 
<doc> 
<field name="id">18</field> 
<field name="name">Surround sound</field> 
<field name="relevance">false</field> 
<field name="freshness">true</field> 
</doc> 
<doc> 
<field name="id">19</field> 
<field name="name">Digital Living Network Alliance</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">20</field> 
<field name="name">EcoCute</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">21</field> 
<field name="name">TV gateway</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">22</field> 
<field name="name">List of smart TV platforms and middleware software</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">23</field> 
<field name="name">Predicta</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">24</field> 
<field name="name">AMX Control Systems</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">25</field> 
<field name="name">Batteriser</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">26</field> 
<field name="name">Audio equipment</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">27</field> 
<field name="name">EcoCute</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">28</field> 
<field name="name">Elmo Document Cameras</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">29</field> 
<field name="name">Lab Gruppen Audio</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">30</field> 
<field name="name">Direct-drive turntable</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">31</field> 
<field name="name">Wearable Technology Show</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">32</field> 
<field name="name">Power cord</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">33</field> 
<field name="name">MiniDisc</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">34</field> 
<field name="name">Quattron</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
<doc> 
<field name="id">35</field> 
<field name="name">I</field> 
<field name="relevance">false</field> 
<field name="freshness">false</field> 
</doc> 
</add> 

はあなたが考えていたもの、このですか?

関連する問題