2013-08-13 18 views
10

Elasticsearchクエリでフィールドを除外するための方法はあります...しかし、私は反対のことを行うことができれば、私は思っていました...何らかの形で、(例えば、添付ファイルのような)クエリ結果に含まれたくない1つまたは2つのフィールドを指定します。除外するフィールドを指定するだけで、1から2を差し引いたすべてのフィールドを入力しなければならないのは苦痛になります私は、検索<a href="http://www.elasticsearch.org/guide/reference/api/search/fields/" rel="noreferrer">http://www.elasticsearch.org/guide/reference/api/search/fields/</a></p> <p>にしたいフィールドだけを含めるように設定するフィールドを使用するように知って

+2

...(私は読んで他の人のためのより多くの、あなたがこれを知っていると思う。) – ramseykhalaf

+0

はい、私はそれを知っていただきありがとうございます。 – concept47

答えて

7

質問にリンクした同じページに「部分」のドキュメントがありますか?それは私が信じている '_source'フィールドだけでも、あなたが望むことをすることを可能にします。 _sourceからデータをロードすると、partialフィールドは includeexcludeパターンに基づいてロードされます_sourceのどの部分を制御するために ワイルドカードを使用するために使用することができhttp://www.elasticsearch.org/guide/reference/api/search/fields/

を参照してください。

両方includeexcludeサポート複数のパターン:

{ 
    "query" : { 
     "match_all" : {} 
    }, 
    "partial_fields" : { 
     "partial1" : { 
      "include" : ["obj1.obj2.*", "obj1.obj4.*"], 
      "exclude" : "obj1.obj3.*" 
     } 
    } 
} 
+1

あなたは少なくともそのドキュメントを引用することができます。たとえOPが何かを見逃してしまったとしても、これは答えではなくコメントです。 –

+0

うん、私はそれを試してみましたが、それは動作しませんでした、ということを見たので、私はおそらくちょうどかわからない、何か間違ったことをやっている: – concept47

+1

\あなたがしようとしたものを投稿することができますか? (これは動作しませんでした驚いた!) – ramseykhalaf

7

あなたはソースフィルタリングを使用することができます(V INテスト済み1.6 V 1.7。。):https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.htmlあなたが使用することもでき

{ 
    "_source": { 
     "include": [ "obj1.*", "obj2.*" ], 
     "exclude": [ "*.description" ] 
    }, 
    "query" : { 
     "term" : { "user" : "kimchy" } 
    } 
} 

それGETリクエストで:

curl "localhost:9200/myindex/mytype/66a8f299870b4cab?_source_exclude=file._content&pretty" 

前の例では、添付ファイルフィールドにファイルの内容を除外する。ちょうどあなたがクエリが返されるだけで何、に対して実行されたフィールドには影響を与えないためにリンクをクリア、「フィールド」パラメータとすることにする

+0

ワイルドカードセレクタを説明してください: '" exclude ":[" * .description "]'? '* .description'は(regexで書かれた):'。* \。description'と同じですか?ありがとう! – crollywood

+0

こんにちは@crollywood、例はESの公式の博士から取られ、それはあなたのregexpが正しいと思うので、すべての "description"サブフィールドを除外します。 – Roberto

関連する問題

 関連する問題