Wie wählt man unterschiedliche Feldwerte mit Solr?
Ich würde gerne die entsprechende SQL aber mit Solr als meine Daten zu speichern.
SELECT
DISTINCT txt
FROM
my_table;
Welche syntax zwingen würde, Solr, nur geben Sie mir unterschiedliche Werte?
http://localhost:8983/solr/select?q=txt:?????&fl=txt
EDIT: So facettensuche scheint zu passen, aber als ich es erforschte, erkannte ich, ich hatte nur detailliert die Hälfte des Problems.
Meine SQL-Abfrage Lesen sollen...
SELECT
DISTINCT SUBSTR(txt,0,3)
FROM
my_table;
Irgendeine Möglichkeit, diese mit Solr?
InformationsquelleAutor der Frage dacracot | 2010-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Facettierung erhalten Sie ein ResultSet, das enthält verschiedene Werte für ein Feld.
E. g.
Sollten Sie sich etwas zurück wie:
Check-out-das wiki für weitere Informationen. Facettierung ist eine wirklich Coole Teil von solr. Genießen Sie 🙂
http://wiki.apache.org/solr/SimpleFacetParameters#Facet_Fields
Hinweis: Facettierung zeigt den indizierten Wert, I. e. nachdem alle Filter angewendet wurden. Eine Möglichkeit, dies zu umgehen, ist die Verwendung der copyfield-Methode, so dass Sie können erstellen eine Facette version der txt-Feld. Auf diese Weise werden Ihre Ergebnisse zeigen den ursprünglichen Wert.
Hoffe, das hilft.. Viel Dokumentation über die Facettierung im wiki verfügbar. Oder ich habe einige schreiben mit screenshots.. die Ihr hier anschauen könnt:
http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html
InformationsquelleAutor der Antwort CraftyFella
Für die
DISTINCT
Teil Ihrer Frage, ich denke, Sie können uns für Solr ist Feld kollabiert /Gruppierung-Funktionen. Es ermöglicht Ihnen, ein Feld angeben, die Sie wollen einzigartige Ergebnisse aus, erstellen Sie eine Gruppe auf die einzigartigen Werte und es wird Ihnen zeigen, wie viele Dokumente sind, die Gruppe.Können Sie dann mit den gleichen
substr
werden in einem separaten Feld und Kollaps auf.InformationsquelleAutor der Antwort Antony Stubbs
Ich würde speichern des Teilstrings in einem anderen Bereich (nennen wir in
txt_substring
), dann Facette auftxt_substring
als CraftyFella zeigte.Normalerweise verwende ich den n-gram-tokenizer, aber ich glaube nicht, können Sie Facetten auf, die.
InformationsquelleAutor der Antwort Mauricio Scheffer
Verwenden Sie die StatsComponent mit parameter
stats.calcdistinct
um eine Liste von unterschiedlichen Werten für einen bestimmten Bereich:https://cwiki.apache.org/confluence/display/solr/The+Stats+ - Komponente
Es wird Ihnen auch die Anzahl der unterschiedlichen Werte. (Im Falle von Facetten, die Sie brauchen, zu wissen, den Grafen zu ersuchen alle, oder Sie setzen der Facette.Grenze zu etwas, was wirklich hoch und zählen Sie das Ergebnis selbst. Außerdem müssen Sie ein string-Feld für die Herstellung Facetten der Arbeit, wie Sie brauchen, es hier.)
http://wiki.apache.org/solr/StatsComponent
ist veraltet, da es nicht
stats.calcdistinct
stats.calcdistinct
ist wohl seit 4.7.Beispiel:
InformationsquelleAutor der Antwort Risadinha
werfen Sie einen Blick auf facettierte Suche
InformationsquelleAutor der Antwort Tim Mahy
Solr 5.1 und später hat die neue Facette-Modul hat eine integrierte Unterstützung für die Suche nach der Anzahl der eindeutigen Werte in einem Feld. Sie können sogar die Anzahl der eindeutigen Werte in einem Feld für jeden Eimer eine Facette, und Sortieren nach diesem Wert zu finden, der höchsten oder niedrigsten Anzahl von eindeutigen Werten.
Anzahl der eindeutigen Werte in "myfield":
json.facet={x:'einzigartig(myfield)'}
Facette von "Kategorie" - Feld, und für jede Kategorie zeigt die Anzahl der eindeutigen Werte, die in "color":
Dies ist in Solr 5.1 und höher. Weitere Facette Funktionen wie "einzigartig" gezeigt werden, http://yonik.com/solr-facet-functions/
InformationsquelleAutor der Antwort Yonik