Elasticsearch“您是不是要找”功能

问题描述 投票:0回答:1

我已经实现了在我使用期限建议,试图建立一个电子商务系统的解决方案Elasticsearch“你的意思是......”之类的功能

对于拼写错误,它的作品真的很好

例如,如果我搜索hampster然后它回来提示正确的拼写hamster这正是我想要的

这个问题是在当我搜索了类似food,它回来暗示fold,我不希望它做的

我正在试图找出是,如果有内置于Elasticsearch的东西,使我看到food是不需要的建议有效期限

不知道这是有用的,但这里是我的查询和响应(PHP)

Array
(
[suggest] => Array
    (
        [spell_check] => Array
            (
                [text] => food
                [term] => Array
                    (
                        [field] => name
                    )

            )

    )

)


Array
(
[took] => 1
[timed_out] => 
[_shards] => Array
    (
        [total] => 5
        [successful] => 5
        [skipped] => 0
        [failed] => 0
    )

[hits] => Array
    (
        [total] => 0
        [max_score] => 0
        [hits] => Array
            (
            )

    )

[suggest] => Array
    (
        [spell_check] => Array
            (
                [0] => Array
                    (
                        [text] => food
                        [offset] => 0
                        [length] => 4
                        [options] => Array
                            (
                                [0] => Array
                                    (
                                        [text] => fold
                                        [score] => 0.75
                                        [freq] => 1
                                    )

                                [1] => Array
                                    (
                                        [text] => feed
                                        [score] => 0.5
                                        [freq] => 4
                                    )

                                [2] => Array
                                    (
                                        [text] => four
                                        [score] => 0.5
                                        [freq] => 1
                                    )

                            )

                    )

            )

    )

)
php elasticsearch
1个回答
0
投票

这实际上是预期的行为,因为它迎合了可能的拼写错误。有一个与返回的建议值相关联,多个项目被返回的分数。在你的情况下,查询食物,假设你有你的数据库食品相关的数据,会返回结果。我不知道,如果你还的情况下返回结果(或只是使用ES作为某种建议的服务)一炮而红,但你的逻辑可能,例如,只需在没有结果的情况下,建议返回。你也可以看到,“进”则返回,但有一个较低的分数因为,我认为,还应用了Levenshtein距离来计算最终得分。

© www.soinside.com 2019 - 2024. All rights reserved.