gpt4 book ai didi

elasticsearch - 如何通过Elasticsearch在 Algolia 实现相同的目标

转载 作者:行者123 更新时间:2023-12-02 22:47:28 27 4
gpt4 key购买 nike

我花了大约一周的时间来修补Elasticsearch。我正在尝试创建一个搜索查询,该查询将在文档的所有字段上启用子字符串搜索('kua lum'=>'kuala lumpur')和模糊搜索('koala lumpur'=>'kuala lumpur')。到目前为止,我了解到您使用 multi_match 进行多字段模糊搜索,并且使用通配符进行子字符串搜索(不能使用nGram,因为它会破坏模糊搜索),但是实际上没有关于如何进行搜索的信息。结合起来。
昨天我尝试了Algolia,它开箱即用地完成了我需要的一切。不幸的是,我正在使用敏感数据,因此我不允许将其托管在本地基础结构之外,即使Algolia确实提供了内部部署,我担心对于我的香蕉共和国来说,它也太昂贵了。
所以我想我坚持使用Elasticsearch。是否可以使它做我想做的事?
我也可以自由尝试其他搜索引擎。
upd:尝试了MeiliSearch,开箱即用

最佳答案

Elastic提供了非常灵活的全文本搜索功能。
可能有多种方法可以实现它。如果您事先知道搜索基础,则可以使用synonyms filter
否则,您始终可以将两个查询合并为一个“应该” bool(boolean) 查询。
或者,当您搜索“kual lump”时,类似这样的查询也会返回“Kuala Lumpur”,尽管得分会少很多

    {
"query": {
"multi_match": {
"fields": [
"city"
],
"query": "kual lum",
"type": "best_fields",
"operator": "or",
"fuzziness": "AUTO"
}
}
}
现在,您可以使用模糊因素来满足您的需要(尝试将其设为2,以获得所需的内容),它具有魔力,但请牢记该因素,因为它可能会影响搜索性能。
您应该避免使用通配符,因为它们会占用大量资源。
另一种方法是将每个单词视为一个单独的搜索词,然后将其传递给多个“应”查询。

关于elasticsearch - 如何通过Elasticsearch在 Algolia 实现相同的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63520728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com