Solr如何为每个字段具有多个可能值的字段定义数据导入处理程序



我想从我的数据库数据中创建索引。目前,我使用SQL视图从基础中提取数据。在我的结果中,我每个结果都有一个唯一的ID,每个结果都可以包含一些可能需要搜索的列的另一个ID

例如,在一个商店中,我有3列: ID,名称,products_id 。products_id可能每个商店都有几个值。我如何将这样的文档索引。我是否必须根据products_id创建一个文档(之后我需要在某种程度上进行结果),或者我可以使用另一种方法来呈现此结果?我看到有 Multivalued 配置,但是有什么最佳方法可以完成吗?

1)在schema.xml中,您的提交的文件必须被误解。示例

<field name="specialDeliveryTimes" type="int" stored="true" indexed="true" multiValued="true"/>

2)在SQL语句中必须加入值,示例使用Oracle:

LISTAGG(AOP_LOCATIONID, ',') WITHIN GROUP (ORDER BY AOP_LOCATIONID) AS SPECIALDELIVERYTIMES

在此实现Simas_ch。

提出的解决方案

in db-data-config.xml define:

<dataConfig>
   <dataSource name="jdbc" driver="***" 
      url="jdbc:****" 
      user="***" password="***"/>
   <document>
    <entity name="operation" transformer="RegexTransformer"
        pk="ID"
        query="SELECT * FROM GRC.V_SOLR_REGISTRAR_FR_CATALOG@GRCLINK" 
    >
       <field column="fieldDB" splitBy="," sourceColName="fieldSolr"/>

放置 Transformer =" RegexTransFormer" splitby ="," SourceColname =" Top_service_id"

schema.xml 中定义为描述:

<field name="fieldSolr" type="int" indexed="true" stored="true" multiValued="true"/>

其中 Multivalued 很重要。

sql查询进行串联:

LISTAGG(test, ',') WITHIN GROUP (ORDER BY test) AS fieldDB

相关内容

最新更新