And*_*rei 2 lucene elasticsearch spring-data
我有以下基于注释的弹性搜索配置,我将索引设置为不分析,因为我不希望对这些字段进行标记化:
@Document(indexName = "abc", type = "efg")
public class ResourceElasticSearch {
@Id
private String id;
@Field(type = FieldType.String, index = FieldIndex.not_analyzed)
private String name;
@Field(type = FieldType.String, store = true)
private List<String> tags = new ArrayList<>();
@Field(type = FieldType.String)
private String clientId;
@Field(type = FieldType.String, index = FieldIndex.not_analyzed)
private String virtualPath;
@Field(type = FieldType.Date)
private Date lastModifiedTime;
@Field(type = FieldType.Date)
private Date lastQueryTime;
@Field(type = FieldType.String)
private String modificationId;
@Field(type = FieldType.String)
private String realPath;
@Field(type = FieldType.String)
private String extension;
@Field(type = FieldType.String)
private ResourceType type;
Run Code Online (Sandbox Code Playgroud)
是否可以通过使用注释对名称,virtualPath和标签进行区分大小写的搜索?搜索看起来像这样,必须使用通配符搜索:
private QueryBuilder getQueryBuilderForSearch(SearchCriteria criteria) {
String virtualPath = criteria.getPath();
return boolQuery()
.must(wildcardQuery("virtualPath", virtualPath))
.must(wildcardQuery("name", criteria.getName()));
}
Run Code Online (Sandbox Code Playgroud)
并不是真的想做什么,不是关于Spring Data配置,而是关于Elasticsearch本身:您对数据建立了索引,not_analyzed并且它将保持这种状态。
另外,如果您需要不区分大小写的数据,我建议使用结合了令牌过滤器的keyword分析器建立索引。lowercase
| 归档时间: |
|
| 查看次数: |
1623 次 |
| 最近记录: |