我有一个像
这样的架构的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
并手动完成工作。无论如何使用弹簧数据处理动态字段?也许通过在Document中定义Map
并让Spring使用map键作为solr字段?
答案 0 :(得分:2)
您可以为动态字段定义Map
,如下所示
private @Field("*_t") Map<String, List<String>> textMap;
假设_t字段是多值的,您可以Map<String,List>
或Map<String,String>