システムにはユーザーがいて、そのニックネームには、Elasticsearch が個別の値に使用する特殊文字であるコンマを含めることができます。次のユーザーが保存されています。
{
"nickname" : "John"
}
{
"nickname" : "John,2"
}
クエリを実行するとnickname:John
、予期しない両方のドキュメントが取得されます。
何が必要なのかわからない。つまり、トークナイザー、アナライザー...
前もって感謝します
システムにはユーザーがいて、そのニックネームには、Elasticsearch が個別の値に使用する特殊文字であるコンマを含めることができます。次のユーザーが保存されています。
{
"nickname" : "John"
}
{
"nickname" : "John,2"
}
クエリを実行するとnickname:John
、予期しない両方のドキュメントが取得されます。
何が必要なのかわからない。つまり、トークナイザー、アナライザー...
前もって感謝します
文字列フィールドは ElasticSearch でデフォルトで分析されます。そのため、2 番目のユーザーは "John" と "2" の 2 つの用語でインデックス付けされ、nickname:John
クエリと一致します。
ニックネームを分析しない (単一の文字列として扱う) 場合は、このフィールドのマッピングを明示的に「キーワード」に設定する必要があります。
それに関する詳細情報: http://www.elasticsearch.org/guide/reference/index-modules/analysis/keyword-analyzer/およびマッピング API について: http://www.elasticsearch.org/guide/reference/api /admin-indices-put-mapping/