検索で大文字と小文字が区別される理由を理解できません。私が読んだことはすべて、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
}
誰もがここでいただきました!間違った任意のアイデアを得ましたか。
おかげdocumentationから
もっと複雑なES(2.3)のバージョンでは、これにCompletion Suggesterを使用することができます。 – myusuf
私は同じ問題があります。 "query_string"を試してもES 5.1では動作しませんが、2.3で動作しました。 !!!! – Telebh