我正在使用Solr DataImportHandler模块。这是我的配置;
<dataConfig>
<dataSource type="JdbcDataSource"
name="sql"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost;databaseName=AdventureWorks2008;integratedSecurity=true;"/>
<document>
<entity name="Person" dataSource="sql"
pk="BusinessEntityID"
query="select BusinessEntityID,FirstName,LastName FROM [Person].[Person]"
deltaImportQuery="select BusinessEntityID,FirstName,LastName FROM [Person].[Person] WHERE id='${dih.delta.id}'"
deltaQuery="SELECT BusinessEntityID FROM [Person].[Person] WHERE ModifiedDate > '${dih.last_index_time}'">
<field column="BusinessEntityID" name="id"/>
<field column="FirstName" name="firstname"/>
<field column="LastName" name="lastname"/>
</entity>
</document>
</dataConfig>
出于某种原因,只有id字段是导入而不是其余部分。
原因是什么?我错过了什么吗?
答案 0 :(得分:3)
您可能错过了schema.xml
文件
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="firstname" type="string" indexed="true" stored="true"/>
<field name="lastname" type="string" indexed="true" stored="true"/>
此处id
的类型可以是int
。只需检查你想要的东西。
<field name="id" type="int" indexed="true" stored="true" required="true"/>
答案 1 :(得分:0)
确保您的ID和唯一字段正确。 我遇到了同样的问题,更改了Pk和唯一的字段名称,效果很好。