Я думаю, что взвешенный поиск мог бы сделать трюк, если бы я правильно рассмотрел все ваши критерии. Если вы загрузите образцы данных, которые я создал ниже, в демонстрационное ядро и выполните поиск edismax, чтобы вы оценили значение 0,8 и свежесть на 0,2, соответствующие свежие ответы выходят вверху.
Поиск 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
Пожалуйста, обратите внимание, я ограничил к ResultSet первой десятке.
Заголовок ответа с результатами выглядит следующим образом:
{
"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>
Является ли это то, что вы имели в виду?
Можете ли вы привести пример того, что будет выше, чем то, что другой элемент и почему в воображаемом наборе данных? –
@LeftyGBalogh Эй, конечно. Итак, если мы приведем свежесть документа в качестве показателя атрибута, то я хочу, чтобы результаты поиска были релевантными, но имели вероятностный оттенок. если мы выведем 10 результатов на страницу, и мы установим вероятность свежести результата равным 0,2, тогда должно быть по крайней мере 2 из тех 10 результатов, которые имеют новый атрибут. Надеюсь это поможет – Sachin