gpt4 book ai didi

逃避角色重新研究

转载 作者:行者123 更新时间:2023-12-02 19:54:56 24 4
gpt4 key购买 nike

下午好,

今天下午我在工作中遇到了重新搜索的问题。我想搜索其键中具有特定值的记录,但该键中有一个特殊字符。

示例:记录_1: 姓名:托托 职位:产品经理 城镇:洛洛巴巴

在 redis-cli 中,当我执行 'ft.search "lolo-baba"' 时,它给出了由 redisearch 执行的查询。-> 它在做 lolo 或 -baba。

经过一些研究,我发现这是由于 redisearch 如何将单词划分为标记而造成的。解决方案是在“特殊字符”之前使用一个或两个“\”来转义它,但在我的情况下它不起作用。

我已经尝试过:ft. 搜索“洛洛巴巴”->“lolo OR -baba”不是我想要的

ft.search“洛洛巴巴”-> 这个给了我我想要的“lolo-baba 而不是 lolo OR -baba”,但我不知道为什么它什么也没给我返回。

ft.search“洛洛\-巴巴”-> 用多次同一个单词做了一些奇怪的事情,我不知道奇怪。

我想要一个将“lolo-baba”作为单个字符串而不是 2 个标记执行的查询。

最佳答案

如果你使用redis-cli,你就需要双重转义,第一次转义是让cli告诉它转义下一个字符,第二次转义是让转义字符实际上被发送到redis:

ft.search lolo\\-baba

这将创建您正在查找的确切查询,但请注意,它仍然不会返回任何结果,因为您还必须在索引时转义(否则这两个单词也将在索引时被标记,并且不会被索引为单个术语)。

另一种可能性是将此字段索引为 TAG 字段。标签仅由 SEPERATOR 标记(默认为“,”)。那么您的查询将如下所示:

ft.search @field_name:{lolo\\-baba}

关于逃避角色重新研究,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275305/

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