我在实体中使用的是Spring Data Elasticsearch(4.0.1 RELEASE)中的注释@CompletionField,但看起来ElasticSearch索引是用错误的映射创建的。
实体
@Document(indexName="address")
public class Address {
@CompletionField
private String cityName;
}
存储库
@Service
public interface AddressRepository extends ElasticsearchRepository<Address, String> {
}
通过调用repository.save(address)
自动创建索引
elasticsearch映射的片段
"cityName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}
如您所见,缺少“完成”类型(请参见https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html#completion-suggester)。
我错过了什么吗?
@CompletionField
必须是Completion
类型:
@Document(indexName="address")
public class Address {
@CompletionField
private Completion cityName;
}
您可能要检查test code此功能