2017-02-26 40 views
0

クエリで1つのフィールドを一致させようとすると、すべてがhighlighting in elasticsearchで正常に動作します。elasticsearchで複数の一致とハイライト表示

私が使用しよう:

$params = [ 
'index' => 'my_index', 
'type' => 'articles', 
'body' => [ 
    'from' => '0', 
    'size' => '10', 
    'query' => [ 
     'bool' => [ 
      'must' => [ 
       'match' => [ 'content' => 'what I want to search' ] 
       ] 
      ] 
    ], 
    'highlight' => [ 
     'pre_tags' => ['<mark>'], 
     'post_tags' => ['</mark>'], 
     'fields' => [ 
      'content' => [ 'fragment_size' => 150, 'number_of_fragments' => 3 ] 
     ] 
    ], 
] 

]。

すべて機能しますが、複数のフィールドをキャッチしようとすると、検索が正しく機能しますが、ハイライトが消えます。私は2つの異なるクエリを持つ2つの異なるフィールドで検索を適用したいとき

'match' => [ 'content' => 'what I want to search' ], 
'match' => [ 'type' => 1 ] 

は、あなたが機能強調表示を実現する方法を知っていますか?

+0

あなたはこれに対する解決策を見つけますか? – Bildsoe

答えて

0

はこれを試してみてください。

$params = [ 
    'index' => 'my_index', 
    'type' => 'articles', 
    'body' => [ 
     'from' => '0', 
     'size' => '10', 
     'query' => [ 
      'bool' => [ 
      'must' => [ 
       'match' => [ 'content' => 'what I want to search' ] 
       ] 
      ], 
       'filter' => ['type' => 1] 
     ] 
      ] ], 
    'highlight' => [ 
     'pre_tags' => ['<mark>'], 
     'post_tags' => ['</mark>'], 
     'fields' => [ 
      'content' => [ 'fragment_size' => 150, 'number_of_fragments' => 3 ] 
     ] 
    ], 
] 
関連する問題