2

以下は、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"
                                }
                            }
                        }
                    }
                }
            }
        }
    }

4

1 に答える 1

1

このクエリを試してください:

{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "dir.raw": {
              "value": "/shared"
            }
          }
        },
        {
          "term": {
            "dir.raw": {
              "value": "/private/hitesh"
            }
          }
        },
        {
          "match_phrase_prefix": {
            "dir.raw": "/shared"
          }
        },
        {
          "match_phrase_prefix": {
            "dir.raw": "/private/hitesh"
          }
        }
      ]
    }
  }
}
于 2016-04-27T11:53:41.577 に答える