我無法弄清楚,爲什麼我的搜索是區分大小寫的。我讀過的所有內容都說默認情況下ES是不敏感的。我有一個指定的標準分析儀,用於索引和搜索的映射,但它似乎像一些事情仍然區分大小寫的 - 即通配符:忽略大小寫不工作
"query": {
"bool": {
"must": [
{
"wildcard": {
"name": {
"value": "Rae*"
}
}
}
]
}
這種失敗,但「RAE *」的作品被通緝。我需要使用通配符進行'starts-with'類型搜索(我假設)。
我使用從.net應用程序NEST和我指定的分析儀,當我這樣創建索引:
var settings = new IndexSettings();
settings.NumberOfReplicas = _configuration.Replicas;
settings.NumberOfShards = _configuration.Shards;
settings.Add("index.refresh_interval", "10s");
settings.Analysis.Analyzers.Add(new KeyValuePair<string, AnalyzerBase>("keyword", new KeywordAnalyzer()));
settings.Analysis.Analyzers.Add(new KeyValuePair<string, AnalyzerBase>("simple", new SimpleAnalyzer()));
在這種情況下,它使用簡單的分析,但標準一個具有相同的效果。
的映射是這樣的:
name: {
type: string
analyzer: simple
store: yes
}
任何人有任何想法什麼是錯在這裏嗎?
由於
隨着更多ES版本(2.3)的版本的推出,您可以使用完成建議器。 – myusuf
我有同樣的問題。即使嘗試使用「query_string」,它在ES 5.1中也不起作用,但它在2.3中起作用。 !!!! – Telebh