簡體   English   中英

如何在Elasticsearch中突出顯示我的結果?

[英]How do i highlight my result in 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()
        )
    ),
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM