我正在尝试将现有数据库中的一些实体映射到SOLR。
表格是:
地图: HOTEL_ID HOTEL_NAME
HotelToCategory: HOTEL_ID CATEGORY_ID 率
类别: CATEGORY_ID 名称 值
如何使用DataImportHandler生成如下文档:
{
hotel_name: 'name',
hotel_id: 1,
categories: [
{ category_name: 'cname',
value: 'val',
rate: 3,
}
]
}
任何帮助将不胜感激!
答案 0 :(得分:6)
使用DIH中的堆叠实体对关系进行索引。看看Solr wiki中的DIH page。
Solr发行版中还包含了一些基本示例,请参阅示例/示例-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>
或者通过在搜索时只存储类别ID并进行查找(分别对数据库或索引类别和查找Solr):
<entity name="hotel_category_display"
query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION">
<field column="category" name="category" />
</entity>