当前位置: 首页 > 知识库问答 >
问题:

动态字段不工作的Spring数据Solr

楚权
2023-03-14

我正在尝试用动态字段索引文档并对其进行定义:

@SolrDocument(solrCoreName = "collection1")
public class SolrProduct {

    @Field
    String id;

    @Field
    String name;

    @Field("mappedField_*")
    Map<String, List<String>> mappedFieldValues;
}

和以下回购:

public interface SolrProductRepository extends SolrCrudRepository<SolrProduct, String> { }

我的solr模式如下:

<field name="name" type="text_ws" indexed="true" stored="true"/>
<dynamicField name="mappedField_*" type="text_general" indexed="true" stored="true"/>
org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:

因此,在我看来,spring-data-solr没有正确地使用动态字段名称调用solr(而不是mappedfield_thermeter,它只是调用thermeter)。

有什么想法吗?

共有1个答案

卓俊晖
2023-03-14

Spring data solr支持动态字段映射,例如,在我的项目中,我将任何字段名配置为对象类型

@org.springframework.data.solr.core.mapping.Dynamic
@org.apache.solr.client.solrj.beans.Field("*")
private ListOrderedMap<String, Object> fieldValueMap;

可以看到任何字段值映射到此映射。但是在solr配置中的项目中,您已经说过只映射以“mappedfield_*”开头的字段,因此如果您将字段名称更改为mappedField_yourField,它将正常工作

 类似资料:
  • 我正在尝试填充一个下拉菜单。第二个和第三个下拉列表应显示根据先前选择的下拉值从数据库检索后的值。你能指出我代码中的错误吗。当我运行代码时,我无法在任何下拉列表中选择任何值。请帮帮我<乡村。jsp 状态jsp City.jsp几乎和state.jsp一样 我已经在数据库中添加了值。提前谢谢

  • 我在自动生成属性类时遇到了一个问题。 下面是我的properties类,当我在@service类中自动调用它时,它的行为很好。 但是当我在我的SQLConstants类(它只有静态常量变量)中自动调用它时,我会得到一个异常。 我取出了静态的final引用,但仍然得到一个空指针异常。 出现在上。 unsatisfiedDependencyException:创建名为“SMSController”的b

  • 我使用Spring Boot和百里香叶,并尝试使用表单设置列表元素(即对象)。更准确地说,我有两个实体:聚合答案列表的问题,我将问题对象传递给模型,并尝试在迭代中设置每个答案对象。当按下保存(提交表格)时,我得到异常: 字段“答案”上对象“问题”中的字段错误:拒绝值[[答案(id=0,答案编号=1,文本=,正确=假),答案(id=0,答案编号=2,文本=,正确=假),答案(id=0,答案编号=3,

  • 我遵循了这个官方教程使用Spring boot 2.0.0开始集中配置。RELEASE和Spring cloud Finchley。M8 但是动态刷新属性(不重新启动)不起作用。经过一些调试,我注意到ContextRefresh中的refresh()方法。类,它将正确返回更改后的键,但在下次使用中重建用@RefreshScope注释的bean之后。它仍然看到旧的值,而不是更新的值。 注意:这与Sp

  • 我使用Redis作为Spring数据的数据库,没有自定义值或哈希值序列化器。我假设standrad JdkSerializationRedisSerializer应该用于对象序列化。看起来有些对象的临时字段被序列化到数据库中。 我如何克服这个问题?

  • 编辑:FXML文件