以下は、4 つの結果が取得された検索応答の例です。
{ 「取った」: 13, "timed_out": false, "_shards": { "合計": 5, 「成功」: 5, 「失敗しました」: 0 }、 "ヒット": { "合計": 4, "max_score": 0.41753215, "ヒット": [ { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/shared/Report_google_Shared", "_score": 0.41753215, "田畑": { "最終更新日": [ 1461738428007 ]、 "ディレクトリ": [ 「/共有」 ]、 "ファイル名": [ "Report_google_Shared" ] }、 "ハイライト": { "ファイル名": [ " Report_google_Shared " ] } }、 { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/shared/Report_Gmail_Shared", "_score": 0.41753215, "田畑": { "最終更新日": [ 1461738618676 ]、 "ディレクトリ": [ 「/共有」 ]、 "ファイル名": [ "Report_Gmail_Shared" ] }、 "ハイライト": { "ファイル名": [ " Report_Gmail_Shared " ] } }、 { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/private/hitesh/Report_Gmail_Private", "_score": 0.1883173, "田畑": { "最終更新日": [ 1461738629888 ]、 "ディレクトリ": [ "/private/hitesh" ]、 "ファイル名": [ "Report_Gmail_Private" ] }、 "ハイライト": { "ファイル名": [ " Report_Gmail_Private " ] } }、 { "_index": "google_a804f89b-d32e-426a-a79a-ea83d65c98ea", "_type": "viz_dashlet", "_id": "/private/dholaria/Report_google_Private", "_score": 0.1883173, "田畑": { "最終更新日": [ 1461738451720 ]、 "ディレクトリ": [ "/private/dholaria" ]、 "ファイル名": [ "Report_google_Private" ] }、 "ハイライト": { "ファイル名": [ " Report_google_Private " ] } } ] } }
ここで、以下の基準に従って、特定の「dir」フィールド値に基づいて上記の検索結果をフィルタリングしたいと思います。
次の場合にのみ、応答に検索結果を含めます。
- 「dir」フィールドの値が「/shared」または「/private/hitesh」のいずれかに等しい場合
- 「dir」フィールド値が「/shared/」または「/private/hitesh/」のいずれかで始まる場合
ElasticSearch で上記の機能を実現するにはどうすればよいですか?
PS: 以下は私のマッピング例です。
{ "google_a804f89b-d32e-426a-a79a-ea83d65c98ea": { "マッピング": { "viz_dashlet": { "プロパティ": { "チャート": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "columnLabels": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "列名": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "作成者": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "次元": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "ディレクトリ": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "式": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "ファイル名": { "タイプ": "文字列", "index_analyzer": "whitespace_index", "search_analyzer": "whitespace_search", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "最終更新日": { "タイプ": "日付", "format": "date_hour_minute_second" }、 "対策": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } }、 "promptFilters": { "タイプ": "文字列", "index_analyzer": "report_index_analyzer", "search_analyzer": "report_search_analyzer", "田畑": { "生": { "タイプ": "文字列", "index": "not_analyzed" } } } } } } } }