2017-06-13 4 views
1

Ich bin neu bei Solr und versuchen, Datenbank mit Solr 6.5.1 + Postgresql.Apache Solr DataImport erfolgreich, aber kein Ergebnis von Abfrage

Schließlich sieht es erfolgreich aus, die Datenbank zu indizieren.

Dataimport-Bildschirm zeigt

 
Indexing completed. Added/Updated: 0 documents. Deleted 0 documents. (Duration: 21m 13s) 
Requests: 1 , Fetched: 19,736,915 15,504/s, Skipped: 0 , Processed: 0 
Started: about an hour ago 

jedoch Bildschirm nichts angezeigt wird auf Abfrage, wenn ich Schaltfläche „Abfrage ausführen“ gedrückt.

{ 
"responseHeader":{ 
"status":0, 
"QTime":0, 
"params":{ 
    "q":"*:*", 
    "indent":"on", 
    "wt":"json", 
    "_":"1497333923963"}}, 
    "response":{"numFound":0,"start":0,"docs":[] 
}} 

meine Datenbank-Konfiguration (db-data-config.xml) ist als unten wie.

<dataConfig> 
    <dataSource driver="org.postgresql.Driver" url="jdbc:postgresql://xxx.xx.xxx.xx:5432/xxxxx" user="xxxxx" password="xxx" /> 
    <document> 
    <entity name="pubmed" query="select pmid, article_title, abstract from pubmed_xml"> 
     <field column="pmid" name="pmid" /> 
     <field column="article_title" name="article_title" /> 
     <field column="abstract" name="abstract" /> 
    </entity> 
    </document> 
</dataConfig> 

Können Sie mir einige Tipps geben, um dieses Problem zu beheben?

Vielen Dank im Voraus.

Antwort

0

Wenn Sie Ihre Datei schema.xml überprüfen, sehen Sie einen Eintrag wie folgt: <uniqueKey>id</uniqueKey>. Dies definiert das Solr-Feld id als das eindeutige Feld, das für alle Dokumente im Index obligatorisch ist. Wenn Sie ein anderes Feld verwenden möchten, ändern Sie den Eintrag uniqueKey und stellen Sie sicher, dass dieses bestimmte Feld (pmid in Ihrem Fall) im Schema definiert ist.

0

Wie auch immer, ich fand die Lösung, um es zu beheben.

Ich änderte den Namen 'pmid' zu 'id' so.

und es funktioniert gut. Es scheint, dass 'ID' als Indexierungsschlüssel innerhalb der Solr-Konfiguration verwendet wird.

Bitte lassen Sie mich wissen, wer auch immer den Grund kennt.

danke.