【问题标题】:solr DIH: Generate identity valuesolr DIH:生成标识值
【发布时间】:2020-10-26 08:42:17
【问题描述】:

我需要将我的数据库数据导入 solr。

我正在使用这个data-config.xml

<dataConfig>

  <dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:sqlserver://192.168.122.1;databaseName=giac_txt" user="sa" password="StR0nGp4ss."/> 

  <document>

    <entity name="item" query="select codi_unitat, titol from anc_uniciac>
      <field column="codi_unitat" name="code_l_ns"/>
      <field column="titol" name="title_txt_ca" />
    </entity>

  </document>

</dataConfig>

当我需要生成 id 时出现问题,因为我的架构需要和 id:

<schema name="example-data-driven-schema" version="1.6">
  <uniqueKey>id</uniqueKey>
   ...

有什么想法吗?

编辑

我已经查看了solrconfig.xml

<updateRequestProcessorChain name="files-update-processor">
    <!-- UUIDUpdateProcessorFactory will generate an id if none is present in the incoming document -->
    <processor class="solr.UUIDUpdateProcessorFactory" />

默认情况下它链接到任何update

<initParams path="/update/**">
  <lst name="defaults">
    <str name="update.chain">files-update-processor</str>
  </lst>
</initParams>

是不是意味着默认生成了一个uuid?

【问题讨论】:

  • anc_uniciac 表中的数据是否有任何 id 字段?如果是,则将其映射到 id 字段。如果数据库表中没有 id 字段,可以通过在 solrconfig.xml 中使用 UUIDUpdateProcessorFactory 配置它来生成它

标签: solr dataimporthandler


【解决方案1】:

UUID 是通用唯一标识符的缩写。如果您没有插入到 solr 中的文档的 id,则可以使用它。

unique id 字段在您需要更新或删除文档时很有用,因为 Solr 中的常规搜索无法唯一标识文档。

solrconfig.xml中添加如下配置。

<updateRequestProcessorChain>
 
    <processor class="solr.UUIDUpdateProcessorFactory">
      <str name="fieldName">id</str>
    </processor>
 
    <processor class="solr.LogUpdateProcessorFactory" />
    <processor class="solr.RunUpdateProcessorFactory" />
  </updateRequestProcessorChain>

【讨论】:

  • 我是否需要将此链链接到我的更新处理程序中?
  • 您可以将其添加到更新处理器列表下...其中提到了所有更新处理器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
相关资源
最近更新 更多