Solr 数据导入:连接多个逗号分隔的字段



我正在努力使书籍目录可以使用Solr进行搜索。我编写了一个查询,用于获取我感兴趣的所有信息,使用 DataImportHandler。每本书可能有多种格式,每种格式都有自己的 ISBN、格式名称和价格,它们以逗号分隔值表示,如下所示:

|  id  |   title   |    isbns     |    prices     |  formats  |
|-------------------------------------------------------------|
|  1   |  A Book   | isbn1,isbn2  | price1,price2 | fmt1,fmt2 |
|  2   |  Another  |    anisbn    |     aprice    |  aformat  |
 ... ... ...

我目前正在使用正则表达式转换器和splitBy,以便我可以制作isbn,价格和格式多值字段以进行分面。但是,理想情况下,我希望能够单独提取值并将它们存储在索引的另一个字段中。换句话说,对于示例中 Id 为 1 的书,我想将以下字段存储为字符串:

字段 1:"fmt1 (ISBN1):价格 1"

字段 2:"fmt2 (ISBN2):价格 2"

Solr可以做这种事情吗?我总是可以提取字段并在应用程序端处理它们,但由于此 Solr 索引将有多个客户端执行查询,因此我宁愿在构建索引时存储额外的值。

这一切都在 DIH wiki 中解释,只需使用groupNames参数来指定字段名称(组是常规正则表达式组)。

EDIT:

groupNames 以逗号分隔的字段列名称列表,用于正则表达式包含组,每个组将保存到不同的田。如果要命名某些组,请在逗号。

在此示例中,属性"regex"和"sourceColName"是自定义的转换器使用的属性。它读取字段"full_name"并将其转换为两个新的目标字段"名字"和"姓氏"。因此,即使查询只返回一个结果集中的"full_name"列 solr 文档额外获得两个字段"名字"和"姓氏"是"派生"字段。这些仅当正则表达式匹配时,才会创建新字段。

最新更新