我已经建立了一个像这样的 solr 索引: https://wiki.apache.org/solr/DataImportHandler
我在 data-config.xml 中使用了类似的内容:
<entity name="article" pk="id" query="Select * from msp_article">
<field column="id" name="id"/>
<field column="title" name="docTitle"/>
<field column="orgRef" name="ref" />
<entity name="text" query="select content from msp_articleText where fk_articleId='${article.id}'">
<field column="content" name="textContent"/>
</entity>
</entity>
当查看我的数据库并测试键时,我进入了 msp_articleText 3 行,但在 solr-index 中它只有第一行。
这里出了什么问题? 请帮忙
最佳答案
尝试使用如下所示的联接进行单个查询
Select * from msp_article ma, msp_articleText mat where mat.fk_articleId = ma.msp_article.id
然后有像
这样的字段<field column="id" name="id"/>
<field column="title" name="docTitle"/>
<field column="orgRef" name="ref" />
<field column="content" name="textContent"/>
应该是这样的:
<entity name="article" pk="id" query="Select * from msp_article , msp_articleText where fk_articleId = msp_article.id">
<field column="id" name="id"/>
<field column="title" name="docTitle"/>
<field column="orgRef" name="ref" />
<field column="content" name="textContent"/>
</entity>
您可以根据需要构建自己的查询,我只是想传达这一点,而不是 2 个实体,而是选择一个将有联接查询的实体。
关于mysql - Solr DataImportHandler 外部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559170/