我想将 2 个不同的实体(在本例中为 SQL 中的 2 个表)索引到我的 Lucene 索引中。一个包含产品的表格,另一个包含新闻项目。
为了能够使用相同的搜索方法(查询)来搜索产品和新闻项目,我知道它们必须在同一个索引中,所以 Solr 的几个核心设置不起作用 - 对吧?
在 data-config.xml 中,我定义了 2 种具有相应实体的文档类型。
在 schema.xml 中,我还定义了产品和新闻项目的字段。在我的数据库设计(表)中,我的产品表的唯一键称为“ProductID”,而我的新闻项目的唯一键称为“Id”(这是由我正在使用的 CMS 制作的)。
在 data-config.xml 中,我是否应该将我的唯一 ID 映射到相同的“名称”。这就是完成这项工作的全部内容吗?
我在这里遵循正确的方法吗?
我在想的例子;
数据配置.xml
<!-- Products -->
<document name="products">
<entity name="product" dataSource="sqlServer" pk="ProductID" query="SELECT
ProductID,
ProductNumber,
ProductName,
FROM EcomProducts">
<field column="ProductID" name="**Id**"/>
<field column="ProductNumber" name="ProductNumber"/>
<field column="ProductName" name="ProductName"/>
</entity>
</document>
<!-- News items --->
<document name="newsitems">
<entity name="newsitems" dataSource="sqlServer" pk="id" query="SELECT
Id,
NewsItemTitle,
NewsItemContent,
FROM ItemType_NewsItems">
<field column="Id" name="**Id**"/>
<field column="NewsItemTitle" name="NewsItemTitle"/>
<field column="NewsItemContent" name="NewsItemContent"/>
</entity>
</document>
架构.xml
<!-- Products --->
<field name="**Id**" type="text_general" indexed="true" stored="true" required="true" />
<field name="ProductNumber" type="text_general" indexed="true" stored="true" required="false" />
<field name="ProductName" type="text_general" indexed="true" stored="true" required="false" multiValued="false"/>
<!-- Tips og fif --->
<field name="**Id**" type="text_general" indexed="true" stored="true" required="true" />
<field name="NewsItemTitle" type="text_general" indexed="true" stored="true" required="false" />
<field name="NewsItemContent" type="text_general" indexed="true" stored="true" required="false" />
ID