2017-06-09 6 views
0

ここに私の問題があります:Facebookの投稿がElasticSearchにインデックスされているとしましょう。この投稿には、ネストされたフィールドとしてのコメントが多数あります。ネストされたフィールド自体には「好き」の数があります。ソートされた入れ子フィールドの定義された量でドキュメントを取得するにはどうすればよいですか?

"mappings": { 
    "post": { 
     "properties": { 
      "id": { 
       "type": "integer" 
      }, 
      "comments": { 
       "type": "nested", 
       "properties": { 
        "like_count": { 
         "type": "integer" 
        } 
       } 
      } 
     } 
    } 
} 

ポストはコメントの数千を持っている可能性がありますが、私は特定のポスト(からわずか10件の最も気に入ったコメントを取得したい場合はどのようなので、私は定義する必要があるだろう:だから、マッピングはこのようなものになるだろう投稿のID、フィールド配列のサイズを制限し、ソートルールを定義する)出来ますか?私は "ネスト"クエリを使用して多くの方法を試しましたが、成功しませんでした。

アイデア?

編集:私が試したクエリのいずれか、場合には、誰もが、まだ私が欲しいものについて疑問を持っています

{ 
    "query": { 
     "match": { 
      "id": 81500 
     } 
    }, 
    "sort": [ 
     { 
      "comments.like_count": 
       { 
        "order": "desc" 
       } 
     } 
    ], 
    "nested": { 
     "path": "comments", 
     "inner_hits": { 
      "size": 10 
     } 
    } 
} 
+0

あなたのクエリを共有できますか? –

+0

@ kiran.koduru私が試した質問の一つが追加されました。 –

+0

'nested'フィールドを削除するとどうなりますか?私はそれが[docs](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html)に従って 'query'フィールドの中に入る必要があると信じています。 [this](https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html)。 –

答えて

0

は、この文字列で検索してください:

{ 
    "query": { 
     "match": { 
      "id": 81500 
     } 
    }, 
    "sort": [ 
     { 
      "comments.like_count": 
       { 
        "order": "desc" 
       } 
     } 
    ], 
    "size": 10 
} 
+0

私が必要とするものではない。このクエリは、10のコメントではなく10の投稿を表示します。 –

関連する問題