具有 spring 数据的 solr dynamicField

solr dynamicField with spring data

我有一个架构类似于

的solr核心
<schema name="product" version="1.5">
  <field name="name" type="text_general" indexed="true" stored="true"/>
  <dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true"/>
  ...

我的产品像

{name : "product1", color : "red", foo   : "bar", ....}

假设在 solr 上保存为

{name : "product1", color_t:"red", foo_t : "bar" , ....}

我正在使用 spring-data-solr 连接和使用 solr。动态字段是动态的,所以我无法在我的 @SolrDocument 中定义它们,因此无法轻松更新或查询我的产品。

它可以通过 org.apache.solr.client.solrj.SolrServer 手动完成。无论如何使用 spring 数据来处理动态字段?也许通过在文档中定义一个 Map 并要求 Spring 将映射键用作 solr 字段?

您可以为动态字段定义一个 Map,如下所示

private @Field("*_t") Map<String, List<String>> textMap;

假设 _t 字段是多值的,您可以有 Map<String,List>,或者只是 Map<String,String>