我有以下的註釋基於彈性搜索配置,我已經設置了指數不加以分析,因爲我不希望這些區域被標記化的更多信息:彈性搜索不區分大小寫
@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;
是否有可能通過使用註釋在名稱上進行搜索,virtualPath和標記是不區分大小寫的? 搜索看起來像這樣,通過通配符搜索是必需的:
private QueryBuilder getQueryBuilderForSearch(SearchCriteria criteria) {
String virtualPath = criteria.getPath();
return boolQuery()
.must(wildcardQuery("virtualPath", virtualPath))
.must(wildcardQuery("name", criteria.getName()));
}
不可能。不是關於Spring Data配置,而是關於Elasticsearch本身。您將數據編入索引爲not_analyze,它將保持這種狀態。另外,如果你想要不區分大小寫的數據,爲什麼不用'關鍵字'分析器結合'小寫'標記過濾器來建立索引? –
感謝您的回覆,我認爲這正是我需要的。 – Andrei
安德烈能請你回答我的答案,以便我能接受嗎? – Andrei