elasticsearch – Kennt jemand das Problem mit der Hervorhebung von Abfrageergebnissen bei es-php oder mmanos/laravel-search?

WBOY
Freigeben: 2016-08-04 09:21:42
Original
1439 Leute haben es durchsucht

Der folgende Code wird von laravel elastisearch-php (https://github.com/elastic/elasticsearch-php) implementiert, aber er kann den hervorgehobenen Inhalt nicht zurückgeben. Ich habe ihn online unter https://segmentfault.com/ gelesen. a/1190000003010186 Unten gibt es ein Beispiel für die Hervorhebung, aber mmanos kann es nicht sehr gut verwenden. Wie findet man beispielsweise eine Abfrage eines bestimmten Typs unter einem bestimmten Index?
Wenn ich mit der oben genannten Methode nicht zurechtkomme, kann mir irgendein Freund einen Rat geben? Danke! ! !

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

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

Der obige Code kann die folgenden Ergebnisse finden

<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>
Nach dem Login kopieren
Nach dem Login kopieren

Highlights werden nicht zurückgegeben,

Antwortinhalt:

Der folgende Code wird von laravel elastisearch-php (https://github.com/elastic/elasticsearch-php) implementiert, aber er kann den hervorgehobenen Inhalt nicht zurückgeben. Ich habe ihn online unter https://segmentfault.com/ gelesen. a/1190000003010186 Unten gibt es ein Beispiel für die Hervorhebung, aber mmanos kann es nicht sehr gut verwenden. Wie findet man beispielsweise eine Abfrage eines bestimmten Typs unter einem bestimmten Index?
Wenn ich mit der oben genannten Methode nicht zurechtkomme, kann mir irgendein Freund einen Rat geben? Danke! ! !

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

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

Der obige Code kann die folgenden Ergebnisse finden

<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>
Nach dem Login kopieren
Nach dem Login kopieren

Highlights werden nicht zurückgegeben,

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage