问题标签 [redisearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
escaping - 转义字符重新搜索
下午好,
我今天下午在工作时遇到了重新搜索的问题。我想搜索其键中具有特定值的记录,但该键中有一个特殊字符。
示例:Record_1:姓名:toto 工作:产品经理城镇:lolo-baba
在 redis-cli 中,当我执行 'ft.search "lolo-baba"' 这给了我 redisearch 执行的查询。-> 它在做lolo OR -baba。
经过一些研究,我发现这是由于 redisearch 如何将单词划分为标记。它的解决方案是在“特殊字符”之前使用一个或两个“\”来转义它,但在我的情况下它不起作用。
我已经尝试过: ft.search "lolo-baba" -> "lolo OR -baba" 不是我想要的
ft.search "lolo-baba" -> 这个给了我我想要的 "lolo-baba 而不是 lolo OR -baba" 但我不知道为什么它什么也没给我。
ft.search "lolo\-baba" -> 用多次同一个词做了一些奇怪的事情,我不知道奇怪。
我想要一个将“lolo-baba”作为单个字符串而不是 2 个标记的查询。
date - Redisearch:提升最近的文档
我想知道如何在 Redisearch 中提升最近的文档。字段没有时间戳类型,但可以创建像“day_of_creation”这样的数字类型,例如自 1970 年以来的天数。
那么问题是如何在不更新索引的情况下提升这样的字段,例如修饰符函数,如score = score * 1/(1 + day_of_query - document.day_of_creation)
. 这意味着当天的文件保留他们的分数,而第 2 天的文件有一半的分数,第 3 天的分数只有三分之一,等等。
我可以看到它可能通过聚合器或自定义评分功能起作用,但不完全确定是否能够做到这一点。
redisearch - 如何重新搜索具有 @field 和 - 的项目?
我有一个 redisearch 索引,其中的字段包含特殊字符,如“-”。我一直在尝试搜索类别字段为“Multiroom-høttaler”的产品。
这是直接来自 redis-cli 的示例条目:
我尝试了以下方法,包括从 cli 和 rdm 对所有这些运行 ft.explain ,但没有成功。我也希望它是完全匹配的。
到目前为止,他们都返回0次点击。
我希望获得所有类别为 Multiroom-høyttaler的产品。
redisearch - “一个数字过滤器在使用另一个相同的索引时不使用一个索引。可能是什么原因?”
RediSearch 数字过滤器突然停止为生产中的一个索引工作。虽然它在同一服务器的另一个相同索引中工作。
架构如下提供,我正在尝试对字段 ExpireAt 进行过滤
我已经尝试过以下查询。全部提供 0 个文件。
ft.search 9194_Cache "@ExpireAt:[0 inf]" 限制 0 2
ft.search 9194_Cache "@ExpireAt:[-1 inf]" 限制 0 2
ft.search 9194_Cache "@ExpireAt:[637024139268750000 637024139268750000]" 限制 0 2
------------示例数据-前 2 条记录如下--------
下面的查询结果。
redisearch - Redisearch - 可选查询和权重属性如何工作?
在 RediSearch 中,可选查询和权重如何工作?
现在,当我尝试搜索关键字并使用带有权重的可选查询来提升结果时,它似乎没有做任何事情。
我已经尝试过 RediSearch1.4.0
和1.4.15
.
我有一个索引文档,其中包含不同大小的不同 TEXT 字段,并且在索引时我已经给了它们document_score
。现在我希望我的用户能够通过查询来搜索文档,但我想将那些与查询完全匹配的结果提升到顶部。
我见过 redis 提供的评分算法,但它们似乎都没有对$weight
我们提供给子查询的内容做任何事情。他们都在谈论field weights
和document_score
查询词频。他们都没有在查询中谈论$weight
它将如何影响最终结果。
假设我有 4 个具有不同文本字段的文档。其中之一是title
字段TEXT
。每4个文档的标题字段条目如下:
当我生成以下查询以重新搜索时
我希望具有精确的文档conversation the conversation
位于顶部,所有其他结果(倾斜距离> 0)在它们之后。
但是输出完全不同。IE
所以我想了解子查询权重在最终结果中的作用。
python - 从 Redisearch 索引中获取单词列表,按最常见的出现排序
我有一个简单的 redisearch 索引,我用 Python 创建:
然后我可以搜索一个特定的单词,效果很好:
有没有一种快速的方法来提取单词列表以及出现的情况?我的目标是这样的结果:
我已经看过如何使用这个例子进行字数统计nltk
,zincrby
但想知道是否已经有一种方法可以从redisearch
.
python - 使用 python redisearch 客户端按标签过滤搜索
我有一个带有 TagField 的索引,像这样创建
我会添加这样的文件。
我是这样搜索的。它有一些不需要搜索的字段,所以我限制了要搜索的字段。
我想要的是还通过一些标签过滤结果。例如,我有带有 python、C、Java 等标签的文档,我只希望返回带有标签“C”的文档。
我怎么做?
java - 如何在spring boot中使用reactiveredisoperations执行redis扩展命令?
我正在尝试将 redisearch 与 java/spring 反应式 api 一起使用。因此,对于 nodejs redis 客户端,我可以只使用 send_command 函数并将我想要的任何 redis 命令作为字符串数组传递。这非常适合向 redis 发送 redisearch 命令。
现在我正在使用 java 和 Spring Data Reactive Redis。ReactiveRedisOperations 接口有一个 exec 方法,但它似乎只执行 lua 脚本和什么-a-not。
使用 ReactiveRedisOperations 将 redisearch 命令传递给 redis 服务器的任何方式?
python - Redis Python execute_command Redisearch
我正在使用 python 3.6 在 redis 服务器上添加一些文档!所以我使用命令 :execute_command
和模块 Redis。
在我的示例中,我想将元数据添加到重新搜索文档中:
a 是一个 str 数据。所以我想在文档文档中添加参数:a。其中“a”是文本。
但是当 _command 中有空格时'str a'
,执行 _command 认为它是下一个参数,即使我在每一边加上引号("
或...')
例如:如果a = '"Test Test"'
,我会"\"Test"
在redis服务器上找到...
我该如何处理?
谢谢你的帮助。
redis - redisearch FT.SEARCH 的搜索复杂度?
他们下面的文档说它是 O(n),但没有指定 n 是什么。如果索引中没有文档,则搜索可能会非常慢。这没有任何意义,不是吗?
https://oss.redislabs.com/redisearch/Commands.html#complexity_6