0

如何处理这种情况?这是我的实体类中定义的属性

@Column(nullable = false)
@NotNull
@ApiModelProperty(required = true)
@Size(min = 3, max = 255)
@GenericField(sortable = Sortable.YES)
@FullTextField(analyzer = "lowercaseWhitespaceAnalyzer")
private String title;

例外:

HSEARCH400520:重复的索引字段定义:“标题”。索引字段名称必须是唯一的。查找具有相同字段名称的两个属性映射,或两个具有导致索引字段名称冲突的前缀的索引嵌入,或两个自定义桥接声明具有相同名称的索引字段。

我是否需要创建两个单独的字段,如文档中所示:

@FullTextField
@KeywordField(name = "title_sort", normalizer = "myNormalizer", sortable = Sortable.YES)
private String title;

如果我尝试这个得到以下异常:

无效值。预期为“lowercaseWhitespaceAnalyzer”,实际为“null”字段“context”:属性“type”:失败:- 无效值。预期的“文本”,实际是“关键字”属性“分析器”:失败:- 无效值。预期为“lowercaseWhitespaceAnalyzer”,实际为“null”字段“context_sort”:失败:-缺少属性映射

4

1 回答 1

0

我是否需要创建两个单独的字段,如文档中所示:

是的,确实如此。

如果我尝试这个得到以下异常:

无效值。预期为“lowercaseWhitespaceAnalyzer”,实际为“null”字段“context”:属性“type”:失败:- 无效值。预期的“文本”,实际是“关键字”属性“分析器”:失败:- 无效值。预期为“lowercaseWhitespaceAnalyzer”,实际为“null”字段“context_sort”:失败:-缺少属性映射

如果您查看此错误的完整上下文(此处未包含该错误),您会注意到它显示类似“Elasticsearch 模式验证失败”的内容。

简而言之,Elasticsearch 上已经存在的索引架构与 Hibernate Search 实现您使用注释描述的内容所需的架构不匹配。

您应该删除 Elasticsearch 架构并重新创建它(您将丢失所有索引数据并需要重新索引)。您可以手动完成,也可以让 Hibernate Search 为您完成;请参阅文档的这一部分

于 2022-03-02T07:31:29.407 回答