我是solr的新手并尝试使用solr 6.5.1 + postgresql索引数据库。
最后,将数据库编入索引似乎很成功。
DataImport屏幕显示
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
但是,当我按下“执行查询”按钮时,查询屏幕上没有显示任何内容。
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"*:*",
"indent":"on",
"wt":"json",
"_":"1497333923963"}},
"response":{"numFound":0,"start":0,"docs":[]
}}
我的数据库配置(db-data-config.xml)如下所示。
<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>
你们可以给我一些解决这个问题的技巧吗?
提前谢谢。
答案 0 :(得分:0)
无论如何,我找到了修复它的解决方案。
我更改了名称&#39; pmid&#39;到了&#39; id&#39;像这样。
它工作正常。 似乎&#39; id&#39;用作solr配置中的索引键。
请让我知道谁知道原因。
谢谢。答案 1 :(得分:0)
如果您检查schema.xml文件,则会看到如下条目:<uniqueKey>id</uniqueKey>
。这将solr字段id
定义为索引中所有文档必需的唯一字段。如果要使用其他字段,请更改uniqueKey条目,并确保在模式中定义该特定字段(在您的情况下为pmid
)。