xml – 如何使用单个solr实例索引和搜索位于同一数据源中的两个
我想索引和搜索两个不同的实体.
文件名:db-data-config.xml <dataConfig> <dataSource name="myindex" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://test-pc:1433;DatabaseName=SampleDB" user="username" password="password" /> <document> <entity name="Employees" query="select * from employee" transformer="TemplateTransformer" dataSource="myindex"> <field column="id" name="singlekey" /> <field column="eId" name="eid" /> <field column="eName" name="ename" /> <field column="entity" template="Employee" name="entity" /> </entity> <entity name="Products" query="select * from products" transformer="TemplateTransformer" dataSource="myindex"> <field column="id" name="singlekey" /> <field column="pId" name="pid" /> <field column="pName" name="pname" /> <field column="entity" template="Product" name="entity" /> </entity> </document> 文件名:schema.xml <?xml version="1.0" encoding="UTF-8" ?> <schema name="db" version="1.1"> <types> <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> </types> <fields> <!-- Employee --> <field name="eid" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="ename" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <!-- Products --> <field name="pid" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="pname" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <!--Common fields--> <field name="entity" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="singlekey" type="string" indexed="true" stored="true" required="true" multiValued="false" /> </fields> <uniqueKey>singlekey</uniqueKey> </schema> 如下链接: 如下图所示. 它能够从sql server数据库中获取10条记录,但索引0行,意味着没有完成索引过程.
架构中的所有字段都有
required="true". 您告诉Solr每个实体的结果需要包含所有eid,ename,pid,pname,entity和singlekey字段. 员工没有pid或pname字段,因此不应要求pid和pname.从同样的意义上说,Product没有eid或ename字段,因此不需要eid和ename. 删除 required="true". 从pid,eid和ename将允许您索引. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |