Ich möchte Folgendes tun: Sei A die Menge der Dokumente, jedes mit dem wichtigen Feld: true, und mit einem Datum beginnend mit diesem Jahr oder dem Vorjahr. Das Ergebnis sollte nach Datum sortiert werden. In Pseudo-Code:Kann ich Resultsets in Solr kombinieren
Ergebnis gesetzt A:
q="testquery" +important:true AND +(date:2015* OR date:2016*)
sort=date desc
Dann lassen Sie B die verbleibende Menge von Dokumenten, dh diejenigen mit wichtigem: true und einem Datum vorangegangenen Jahr 2015 und auch alle Dokumente mit wichtig: falsch. Dieses Set sollte auch nach Datum sortiert werden. Wieder in sehr schlampig pseudo:
Ergebnis Satz B:
q="testquery" -(date:2015* OR date:2016*)
sort=date desc
Nun würde Ich mag A gefolgt von B zurückzukehren, und usw., um die Paging-Funktionen nutzen zu können, ich mit SOLR sehr Noob bin (< 10 Stunden des Ausprobierens verschiedener Abfragen) und ich kann mir nicht vorstellen, wie man dieses Verhalten erreicht. Ich denke, ich kann bq nicht benutzen, da wir nicht nach Partitur sortieren, oder?
Ein Beispiel für das gewünschte Ergebnis:
<result name="response" numFound="2089" start="0">
<doc>
<bool name="important">true</bool>
<str name="date">2016-03-01 00:00:00</str>
</doc>
<doc>
<bool name="important">true</bool>
<str name="date">2015-12-01 00:00:00</str>
</doc>
<doc>
<bool name="important">true</bool>
<str name="date">2015-04-01 00:00:00</str>
</doc>
<doc>
<bool name="important">true</bool>
<str name="date">2015-01-01 00:00:00</str>
</doc>
<doc>
<bool name="important">false</bool>
<str name="date">2016-10-01 00:00:00</str>
</doc>
<doc>
<bool name="important">false</bool>
<str name="date">2015-03-01 00:00:00</str>
</doc>
<doc>
<bool name="important">false</bool>
<str name="date">2014-02-01 00:00:00</str>
</doc>
<doc>
<bool name="important">true</bool>
<str name="date">2014-09-01 00:00:00</str>
</doc>
<doc>
<bool name="important">false</bool>
<str name="date">2013-05-01 00:00:00</str>
</doc>
<doc>
<str name="date">2012-09-01 00:00:00</str>
</doc>
</result>
</response>
Hinweis in dem obigen Beispiel, dass für Dokumente älter als 2015, die Dokumente wichtig ist nicht wichtiger als jeder andere markiert, werden sie in streng chronologischer Reihenfolge erscheinen.
Jede Hilfe ist geschätzt, aber ich würde vor allem die Liebe Beispielen SolrNet Syntax :)
EDIT: ich zu indizieren oder Schema ...
Warum haben Sie wichtig: falsch, Datum: [2015,2016] in Ihren Dokumenten? Scheint, als ob sie nicht in entweder A oder B sein sollten? false 2016-10-01 00:00:00 false 2015-03-01 00:00:00 –
@Alexandre Rafalovitch. Vielleicht war ich nicht klar, set B ist die Menge aller Dokumente, die der Abfrage entsprechen, die nicht bereits in Menge A erscheint, nach Datum gesucht. Set A sind alle Dokumente aus dem Jahr 2015, in denen das wichtige Flag gesetzt ist, sortiert nach Datum. Vielleicht habe ich Ihre Frage falsch verstanden. – mickey
Gibt es einen Grund, warum Sie diese Client-Seite nicht tun würden? – Mico