Ці ёсць спосаб для Solr/Lucene, каб вярнуцца ў шэрагі абраных дакументаў замест поўных вынікаў?

Я зацікаўлены ў запыце Solr з запыту д і выбраць свой водгук набору дакументаў D , калі вяртаюцца {10, 20, 30, ...} дакументы.

У цяперашні час я маю поўныя вынікі, г.зн. спіс docids вяртаецца (праз solrpy) і ітэрацыю праз яго, каб знайсці шэрагі D , г.зн. адлюстраванне <ет> D іх індэксы ў выніках пошуку. Я не строга патрабуюць адлюстравання толькі супастаўляюцца шэрагі.

Ці ёсць спосаб, каб Solr/Lucene якiя вяртаюцца шэрагаў для набору ідэнтыфікатараў замест поўных вынікаў?

Іншыя спосабы падыходу да гэтай праблемы:

  • For a query, return the rank of document d
  • For a query up to a specified rank, return whether or not document d is present
  • From a query q1 result up to a specified number of records, return the number of records matched by another query q2
8
+ 1ed гэта для такога незвычайнага пытання. Ці магу я спытаць, што праблема, якую вы маюць намер вырашыць? \
дададзена аўтар aitchnyu, крыніца
Хм, з выкарыстаннем бібліятэкі Lucene здаецца лепш зрабіць стаўку.
дададзена аўтар aitchnyu, крыніца
Наогул, я хачу, каб карціраваны нагадаць Solr ў асобных дакументаў па розных запытах. Больш канкрэтна, я аналізую дадзеныя, сабраныя для компутационной працы, якая ўключае ў сябе знаходжанне лепшай артыкулы для лінгвістычна прыгнечанага запыту. Мне трэба, каб мець магчымасць будаваць розныя запыты і вызначыць, наколькі добра яны вырашыць маю праблему.
дададзена аўтар joeln, крыніца

2 адказы

Вы можаце атрымаць ранг па адзнака полі.

Append &fl=KeyFieldName,score to retrieve document id and score to your query. If you need all fields append &fl=*,score to your query.

См http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_see_the_relevancy_scores_for_search_results для дэталяў.

4
дададзена
Поле ацэнкі дае мне больш інфармацыі, чым мне трэба. Я на самой справе не патрэбныя вынікі спісу, мне проста трэба ведаць, на якім ранг з'яўляецца канкрэтны вынік. <Код> & фл = KeyFieldName таму было б дастаткова для мяне, каб потым праглядзець вынікі. Але калі ёсць тысячы вынікаў, то ёсць значна больш інфармацыі, якая перадавалася з сервера, чым патрэбы быць, проста ведаць, на якой ранжыраваць з'яўляецца пэўнае значэнне KeyFieldName.
дададзена аўтар joeln, крыніца

Не, я не магу думаць аб ГУМЗ або Lucene спосаб зрабіць гэта. Я думаю, што самае простае рашэнне тут, каб запраграмаваць сябе з простым HashSet ...

1
дададзена
Як бы хэш дапамагчы? Скажам, я Запытаная індэкс сартавання на адным полі, і я хацеў бы ведаць, на якой ранг пэўны дакумент будзе ў спісе.
дададзена аўтар toni, крыніца
Гэта, верагодна, што вы ўжо робіце: пакласці ўсе двойкі codIDs ў (HashSet) мноства, то ітэрацыя над SOLR выніковага набору і праверце, калі ідэнтыфікатар знаходзіцца ў вашым наборы. Карыстальнік SOLR курсор, калі вы паглыбляючыся ў выніковы набор (шмат старонак).
дададзена аўтар Hugo Zaragoza, крыніца