首页 文章

在apache solr中索引多个实体

提问于
浏览
1

我试图将两个表(实体)从mysql索引到apache solr .

这是我的data-config.xml

<document name="analysis">
    <entity name="analysis" query="SELECT * FROM analysis">
        <field column="id" name="id" />
        <field column="doc_type" template="analysis" />
        <field column="nid" name="analysis_nid" template="analysis_${analysis.nid}" />
        <field column="sid" name="analysis_sid" template="analysis_${analysis.sid}" />
        <field column="headline" name="headline" />
    </entity>

    <entity name="analysis_source" transformer="TemplateTransformer"  query="select * from analysis_source limit 5">
        <field column="doc_id" template="analysis_source_${analysis_source.id}" name="doc_id"/>
        <field column="doc_type" template="analysis_source" name="doc_type" />
        <field column="nid" name="analysis_source_nid" template="analysis_source_${analysis_source.nid}" />
        <field column="sid" name="analysis_source_sid" template="analysis_source_${analysis_source.sid}" />
        <field column="tax_payer_name" name="tax_payer_name"/>
    </entity>
</document>

这是我的托管模式文件

<field name="id" type="int" indexed="true" stored="true" />
<field name="doc_type" type="string" indexed="true" stored="true" />

<field name="analysis_source_nid" type="int" indexed="true" stored="true" />
<field name="analysis_source_sid" type="int" indexed="true" stored="true"/>
<field name="tax_payer_name" type="string" indexed="true" stored="true"/>

<field name="analysis_nid" type="int" indexed="true" stored="true" />
<field name="analysis_sid" type="int" indexed="true" stored="true"/>
<field name="headline" type="string" indexed="true" stored="true"/>

<uniqueKey>doc_id</uniqueKey>

问题是,当我尝试从solr管理UI进行数据导入时,它只导入 analysis_source 实体 . 我尝试了不同的调整,但没有奏效 .

我按照以下链接将多个实体编入索引

How to index and search two different tables

1 回答

  • 1

    我检查了日志文件,并出现“从数据库错误读取”错误 . 我将查询从“select * from analysis”更改为“select col1,col2 from analyis”

    我想apache solr和mysql中的列结构(数据类型)的兼容性存在问题 .

    所以需要记住列数据类型 .

相关问题