jdbc - solr dataimport jdbc 多列到一个字段
问题描述
我正在尝试对项目实施 solr 搜索。到目前为止一切都很好,第一个简单的版本就可以了。现在我尝试从 postgres 数据库中导入,其中多个列应该在同一个字段中结束。我的配置:
<entity name="address" query="SELECT objectid, ags2, ags3, ags5, ags8, ags11, ags20, ags22, pt, stn, hnr_min, hnr_max, plz, ort, ortz, ot1, ot2 FROM variablen2018.ags22_tmp_solr LIMIT 10000;">
<field column="objectid" name="id" />
<field column="plz" name="plz" />
<field column="ort" name="ort" />
<field column="ortz" name="ort" />
<field column="ot1" name="ort" />
<field column="ot2" name="ort" />
<field column="ort" name="ort_res" />
<field column="stn" name="stn" />
<field column="stn" name="stn_res" />
<field column="ags2" name="ags2" />
<field column="ags3" name="ags3" />
<field column="ags5" name="ags5" />
<field column="ags8" name="ags8" />
<field column="ags11" name="ags11" />
<field column="ags20" name="ags20" />
<field column="ags22" name="ags22" />
<field column="pt" name="coord" />
<field column="hnr_min" name="hnr_min" />
<field column="hnr_max" name="hnr_max" />
</entity>
如您所见,数据库中有 4 列(ort、ortz、ot1、ot2)进入一个字段(ort)。大多数情况下,只有一列被填充,在这种情况下,文档被正常索引。但是当实际上有多个条目时,文档的索引会失败。该字段是这样定义的:
<field name="ort" type="text_de" uninvertible="true" indexed="true" required="true" stored="true"/>
解决方案
DataImporthandler 将查询的结果视图映射到模式视图,因此我认为您无法将多个列映射到一个字段。相反,您可以将每一列分配给一个新的 Solr 字段,然后在您的架构中复制它们。
例如
<field name="ort" type="string" />
<field name="ortz" type="string" />
<field name="ot1" type="string" />
<field name="ot2" type="string" />
<field name="ortCombined" type="string" multiValued="true"/>
<copyField source="ort" dest="ortCombined" />
<copyField source="ortz" dest="ortCombined" />
<copyField source="ot1" dest="ortCombined" />
<copyField source="ot2" dest="ortCombined" />
希望这可以帮助 !
推荐阅读
- package - 在 Vala 中使用包
- swift - 标签中的行数和 macOS
- rust - Rust &str 转换为 &'static &str
- java - Gatling 验证解码的 JWT 令牌
- erlang - dets 是否会使用 ram_file 选项在查找时执行磁盘读数?
- python - 如何每半秒更新一次 tkinter 文本标签?如何避免 .mainloop 以便程序的其余部分可以执行?
- php - 发生致命错误时重定向到另一个页面
- tensorflow - 仅使用神经网络的寻路
- python - Python AsyncJsonWebSocketConsumer 问题
- python - 如何将数据重新采样为“奇数(而不是偶数)”2 小时时间范围?