2016-09-10 3 views
5

Ich verwende Abfragen (Solr Admin), um Wörter durch zwei Textdokumente zu durchsuchen, die sich in meinem HDFS befinden. Wie kann ich den Namen des Dokuments abrufen, die das Wort gefunden wird. Ich dieses Projekt https://github.com/lucidworks/hadoop-solrSolr-Abrufen des Namens des Dokuments, in dem das Wort gefunden wird

ich eine Sammlung erschaffe bin/solr -e cloud mit verwende und ich bin mit „data_driven_schema_configs“ von Server/Solr/configsets/ Verzeichnis.

tryied I <field name="fileName" type="string" indexed="true" stored="true" /> innerhalb Managed-Schema Hinzufügen bei ~/Solr-6.1.0/server/Solr/configsets/data_driven_schema_configs/conf, und es auch zu schema.xml Namen ändern, aber in diesem Verzeichnis gibt es keine Datei DataConfig hinzufügen <field column="file" name="fileName"/> wie ich sehe es in einigen anderen Posts mit ähnlichen Fragen, aber nicht für SolrCloud, so weiß ich nicht, ob das ich versuche, ist richtig. Was sich ändert und in welchen Verzeichnissen ich tun muss, um es möglich zu machen.

Beispiel: Ich suche das Wort "größter", das in beiden Dokumenten gefunden werden kann. Wie kann ich sehen, in dem Dokument jedes Ergebnis ist, sample1.txt oder Sample2.txt

enter image description here

+2

Wenn dies die einzigen Felder in Ihrem Index sind, der die Dokumente beschreibt, können Sie nicht. Wie haben Sie die Indexdateien erstellt? Diese 'ID'-Werte scheinen der eigentliche Text aus den Dokumenten zu sein, und nicht geeignete eindeutige IDs. – MatsLindh

+0

Ich verwende dieses Projekt https://github.com/LucidWorks/hadoop-solr @MatsLindh –

+0

Sie sollten Solr Grundlagen lesen, bevor Sie fragen. Wie @MatsLindh sagte, ist das erste, dass Sie geeignete eindeutige IDs für das Feld "ID" bereitstellen sollten. Der tatsächliche Text aus den Dokumenten sollte in einem entsprechenden Textfeld indiziert werden, siehe [Solr-Feldtypen] (https://cwiki.apache.org/confluence/display/solr/Solr+Field+Types). Wenn Sie den Namen der übereinstimmenden Dokumente angeben möchten, warum indexieren und speichern Sie nicht den Namen der Dokumente? – EricLavault

Antwort

3

Gleiche, was ich sagte, wenn Sie diese Frage im IRC erwähnt:

Ihr Solr Schema muss ein Feld enthalten, in das Sie den Namen eingeben, der auf stored = "true" gesetzt ist, und Sie müssen dieses Feld mit einem entsprechenden Wert in jedes Dokument einfügen, wenn Sie einen Index erstellen. Die meisten Schemaänderungen erfordern eine vollständige Neuindizierung.

https://wiki.apache.org/solr/HowToReindex

+0

Ich habe diese Zeile hinzugefügt, bei manged-schema ' 'in diesem Verzeichnis:' /solr-6.1.0/server/solr/configsets/data_driven_schema_configs/conf 'meinst du das? –

+0

Und haben Sie versichert, dass dieses Feld nicht nur vorhanden ist, sondern auch während der Indexierung ausgefüllt wird? Und wie sollten alte Dokumente Ihres Index einen Wert in dieses Feld bekommen? Jemand muss es dort schreiben. Wurden Sie nach der Schemaerweiterung fortan neu indiziert? – cheffe

+0

@elyograg was meinst du damit "und du musst dieses Feld mit einem relevanten Wert in jedes Dokument einfügen, wenn du indexierst." –

Verwandte Themen