我想从我的数据库数据中创建索引。目前,我使用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