Heim  >  Artikel  >  Backend-Entwicklung  >  elasticsearch - 哪位朋友知道es-php或mmanos/laravel-search的查询结果高亮问题

elasticsearch - 哪位朋友知道es-php或mmanos/laravel-search的查询结果高亮问题

WBOY
WBOYOriginal
2016-08-04 09:21:421384Durchsuche

以下代码是laravel+elastisearch-php(https://github.com/elastic/elasticsearch-php)实现的,但是不能返回高亮内容,网上看了https://segmentfault.com/a/1190000003010186 下面有一个例子提到高亮,但mmanos的不太会用,比如如何找指定索引下指定类型的某个查询?
不乱以上哪种方式,哪位朋友能指点一二,感谢!!!

<code>        $params=[
            'index' => 'n_index',
            'type' => 'n_type',
            'body' => [
                'query' => [
                    'match' => ['ntitle' => '要查询的词']
                ],
                'highlight'=>[
                    'pre_tags'=>['<tag1>', '<tag2>'],
                    'post_tags'=>['</tag2></tag1>', ''],
                    'fields'=>[
                        'ntitle'=>[]
                    ]
                ]
            ]
        ];

        $response = $this->client->search($params);
    
        echo "<pre class="brush:php;toolbar:false">";
        var_dump($response);
        echo "
";

以上代码可以查出以下结果

<code>array(4) {
  ["took"]=>
  int(6)
  ["timed_out"]=>
  bool(false)
  ["_shards"]=>
  array(3) {
    ["total"]=>
    int(5)
    ["successful"]=>
    int(5)
    ["failed"]=>
    int(0)
  }
  ["hits"]=>
  array(3) {
    ["total"]=>
    int(3)
    ["max_score"]=>
    float(1.8223838)
    ["hits"]=>
    array(3) {
      [0]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "6"
        ["_score"]=>
        float(1.8223838)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容2"
        }
      }
      [1]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "7"
        ["_score"]=>
        float(1.2087858)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容1"
        }
      }
      [2]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "5"
        ["_score"]=>
        float(0.23033649)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容3"
        }
      }
    }
  }
}</code>

没有返回高亮部分,

回复内容:

以下代码是laravel+elastisearch-php(https://github.com/elastic/elasticsearch-php)实现的,但是不能返回高亮内容,网上看了https://segmentfault.com/a/1190000003010186 下面有一个例子提到高亮,但mmanos的不太会用,比如如何找指定索引下指定类型的某个查询?
不乱以上哪种方式,哪位朋友能指点一二,感谢!!!

<code>        $params=[
            'index' => 'n_index',
            'type' => 'n_type',
            'body' => [
                'query' => [
                    'match' => ['ntitle' => '要查询的词']
                ],
                'highlight'=>[
                    'pre_tags'=>['<tag1>', '<tag2>'],
                    'post_tags'=>['</tag2></tag1>', ''],
                    'fields'=>[
                        'ntitle'=>[]
                    ]
                ]
            ]
        ];

        $response = $this->client->search($params);
    
        echo "<pre class="brush:php;toolbar:false">";
        var_dump($response);
        echo "
";

以上代码可以查出以下结果

<code>array(4) {
  ["took"]=>
  int(6)
  ["timed_out"]=>
  bool(false)
  ["_shards"]=>
  array(3) {
    ["total"]=>
    int(5)
    ["successful"]=>
    int(5)
    ["failed"]=>
    int(0)
  }
  ["hits"]=>
  array(3) {
    ["total"]=>
    int(3)
    ["max_score"]=>
    float(1.8223838)
    ["hits"]=>
    array(3) {
      [0]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "6"
        ["_score"]=>
        float(1.8223838)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容2"
        }
      }
      [1]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "7"
        ["_score"]=>
        float(1.2087858)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容1"
        }
      }
      [2]=>
      array(5) {
        ["_index"]=>
        string(7) "n_index"
        ["_type"]=>
        string(6) "n_type"
        ["_id"]=>
        string(1) "5"
        ["_score"]=>
        float(0.23033649)
        ["_source"]=>
        array(1) {
          ["ntitle"]=>
          string(35) "ntitle内容3"
        }
      }
    }
  }
}</code>

没有返回高亮部分,

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn