2016-10-24 4 views
1

solr에서 확률 적 결과 출력을 강제 실행하려고했습니다. 즉 페이지 결과의 x % (말 k/n)에는 속성 A가 있습니다.이 작업을 수행하는 데 직접적인 방법이 있는지 확실하지 않습니다.solr에서 확률 적 결과 출력 강제 실행

나는 첫 번째 solr 쿼리에서 A 속성을 사용하여 문서를 향상시키고 자하는 쿼리 재 순위 지정 방식을 시도하고 있습니다. 이렇게해야 속성 A가있는 최소한 k 개 이상의 문서가 맨 위에 있어야합니다. 그런 다음 다른 요소를 실행하여 k 요소 만 선택하고 정상적인 점수 순서로 나머지 n-k 요소를 선택하고 점수 정렬 된 결과를 반환했습니다.

그러나 속성 A가 매우 자주 발생하면 첫 번째 쿼리에 너무 많은 특성 A 문서를 가져올 수 있으며 이로 인해 실행하도록 선택할 문서 수를 결정할 수 없다는 문제점에 직면 해 있습니다. 두 번째 쿼리

나는 아직 solr에 익숙하지 않으며 잘하면이 것을 overthinking 오전. 그럼에도 불구하고 여러분 중 누구라도 solr과 비슷한 문제를 겪었으며 이에 대한 대기 시간이 적은 해결책을 찾았습니까?

+0

상상의 데이터 세트에서 다른 요소와 이유가 무엇보다 높은 지에 대한 예를 들려 줄 수 있습니까? –

+0

@LeftyGBalogh 안녕하세요. 따라서 문서의 신선도를 속성 측정 항목으로 사용하면 관련성이 있지만 검색 결과에 확률 적 효과가 나타나기를 바랍니다. 즉 페이지 당 10 개의 결과를 출력하고 결과 신선도 확률을 0.2로 설정하면 신선한 특성을 갖는 10 개의 결과 중 최소한 2 개가 있어야합니다. 희망이 도움이 – Sachin

답변

0

내가 모든 기준을 적절하게 고려하면 가중치 검색이 트릭을 수행 할 것입니다. 아래에서 작성한 샘플 데이터를 데모 코어에로드하고 edismax 검색을 실행하여 관련성을 0.8로, 신선도를 0.2로하면 관련된 신선한 대답이 맨 위에 표시됩니다. 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에 결과 집합을 제한 참고 : 다음과 같이 enter image description here

검색 URL입니다.

<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> 

이 당신이 생각했던 무엇인가

{ 
    "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}] 
    }} 

당신이 문서에서로드 할 수있는 샘플 데이터 세트는 다음과 같다 : 결과에

응답 헤더처럼 보인다?