我正在尝试将现有数据库中的一些实体映射到SOLR.
表格是:
酒店:hotel_id hotel_name
HotelTocategory:hotel_id category_id rate
类别:category_id名称值
如何使用DataImportHandler生成如下文档:
{
hotel_name: 'name',
hotel_id: 1,
categories: [
{ category_name: 'cname',
value: 'val',
rate: 3,
}
]
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
使用DIH中的堆叠实体对关系进行索引.看看Solr wiki 中的DIH页面.
Solr发行版中还包含了一些基本示例,请参阅examples/example-DIH.
虽然这里有一个限制,solr(目前)不支持索引文档之间的关系,因此您必须找到一个解决方法来索引它.例如,仅将显示数据存储在非索引字段中(可能需要非常频繁的重建索引):
<document>
<entity name="hotel" query="select * from hotel">
<field column="id" name="hotel_id" />
<field column="hotel_name" name="hotel_name" />
<entity name="hotel_category_display"
query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION">
<field column="category" name="category" />
</entity>
</document>
Run Code Online (Sandbox Code Playgroud)
或者通过在搜索时只存储类别ID并进行查找(分别针对数据库或索引类别并针对Solr进行查找):
<entity name="hotel_category_display"
query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION">
<field column="category" name="category" />
</entity>
Run Code Online (Sandbox Code Playgroud)