1

我有一个带有类似架构的 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手动完成。无论如何使用弹簧数据来处理动态字段?也许通过Map在 Document 中定义一个并要求 Spring 使用映射键作为 solr 字段?

4

1 回答 1

2

您可以Map为动态字段定义如下

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

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

于 2015-02-02T11:08:38.993 回答