如何在弹性搜索结果中突出显示文本 - codeigniter

时间:2016-06-30 05:26:23

标签: codeigniter elasticsearch

感谢您之前的帮助,所以现在我可以探索有关弹性搜索的更多信息。

到目前为止,我可以使用elasticsearch操作数据。我在我的php框架(codeigniter)中创建了新的库。 在做了几个数据输入之后。 因为弹性的最好部分是搜索(当然是啊......),我想知道搜索功能。

但是当我创造它时,我对结果感到失望。 与kibana不同,我的结果没有显示我之前输入的关键字的高亮文本。

enter image description here

enter image description here

问题是: 如何在弹性搜索结果中制作高亮文本

我读过这篇文章: https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-request-highlighting.html

但我不知道在哪里放这个代码:

{
    "query" : {...},
    "highlight" : {
        "fields" : {
            **"content" : {}**
        }
    }
}

因为我在php中的代码只是这样: 控制器:

$product = $this->elasticsearch->searchDocsWithParameter($type, $post);
$result = json_decode(json_encode($product),true);
echo "total took:";
echo $result['took'];    

$x=0; $no=1;
while($x <= $result['_shards']['total']):
echo $no; echo" . ";
echo $result["hits"]["hits"][$x]['_source']['en_question']; 
echo"<br>";
echo $result["hits"]["hits"][$x]['_source']['en_answer']; 
echo"<br><br>";
$x++; $no++;
endwhile;

图书馆:

 public function searchDocsWithParameter($type, $query")
    {
        return $this->call($type . '/_search?' . http_build_query(array('q' => $q)));
    }

我已经在谷歌上搜索,没有人发布它是怎么回事。 这就是为什么我要求这个论坛。请帮帮我。

非常感谢回报 感谢

1 个答案:

答案 0 :(得分:1)

也许这会帮助您了解它应该如何运作:

Different result when using GET/POST in elastic search

但对我来说,更好的选择应该是从composer下载elasticsearch库并在你的项目中使用它:

https://philsturgeon.uk/php/2012/05/07/composer-with-codeigniter/

然后您将拥有一个更广泛的库来使用:

https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html