php - 如何在Elasticsearch中突出显示我的结果?

标签 php elasticsearch

我无法突出显示我的结果,查询的哪一部分是错误的?
用于Elasticsearch的PHPClient在执行时引发异常。

$query = [

    "query" => [
    "filtered" => [
        "query" => [
            "bool" => [
                "should" => [
                    [
                        'query_string' => [
                            'fields' => [
                                'Title.title^4',
                                'Title.ngrams_front^2',
                                'Title.ngrams_back'
                            ],
                            'defaultOperator' => 'or',
                            'query' => $paramsObj->q
                        ]
                    ],
                    [
                        'query_string' => [
                            'auto_generate_phrase_queries' => 0,
                            'enable_position_increments' => false,
                            'fields' => [
                                'Title.title',
                                'Address',
                                'keys'
                            ],
                            'query' => $paramsObj->q,
                            'use_dis_max' => false,
                            'boost' => 2
                        ]
                    ],
                    [
                        'fuzzy' => [
                            'Title.title' => [
                                'value' => $paramsObj->q,
                                'boost' => 1,
                                'min_similarity' => 0.5,
                                'max_expansions' => 20,
                                'prefix_length' => 0
                            ]
                        ]
                    ]
                ]   
            ]
        ],
        "filter" => $filters
        ]
    ],
    "highlight" => [
        "fields" => [
            'Title.title' => [ "pre_tags" => "<em>", "post_tags" => "</em>" ]
        ]
    ]

];

首先,我尝试在过滤级别突出显示,然后在Google上搜索并发现我需要在过滤级别顶部的查询级别执行操作,所以我做到了,但仍然会引发异常。
Fatal error: Uncaught exception 'Guzzle\Http\Exception\ClientErrorResponseException' 

如果任何人都可以帮助,请帮助。

最佳答案

尝试这样的事情:

$query = array(
    'query' => array(
        'bool' => array(
            'should' => array(
                'fuzzy' => array(
                    'name' => array(
                        'value' => $serachstring,
                        'boost' => 1,
                        'min_similarity' => 0.5,
                        'max_expansions' => 20,
                        'prefix_length' => 0
                    ),
                ),
                // ...
            )
        ),
    ),
    'highlight' => array(
        "pre_tags" => "<em>", 
        "post_tags" => "</em>",
        'fields' => array(
            'name' => (object) array()
        )
    ),
);

关于php - 如何在Elasticsearch中突出显示我的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052565/

相关文章:

php - 将 PHP 与 Linux 服务器上的 Paradox .db 文件连接

ElasticSearch - 创建模板以通过实体名称模式匹配实体?

elasticsearch - Logstash输入和输出的正确配置是什么?

php - 如何处理 Twig 中的特殊符号

php - MySQL 和 PHP 中的更新查询不起作用

PHP创建多个目录

php - 我如何制作在线编译和运行C++程序的网站

elasticsearch - 在ElasticSearch中过滤结果

elasticsearch - 使用Elasticsearch动态计算值(value)

python - Django Haystack w/Elasticsearch Dwithin投影或单位错误?