问题标签 [sphinxql]
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.
c# - Sphinx:sphinxQL 中的批量查询
我正在使用 sphinx 搜索引擎进行全文搜索,我想将多个搜索查询一次性发送到 searchd 守护进程。我知道这在 SphinxAPI 中是可能的,但我想在 SphinxQL 中使用这个功能。我从 Sphinx 文档中读到:
从 2.0.1-beta 版开始,SphinxQL 支持多语句查询或批处理...(参考:+)
所以我的问题是:
1) 如何在 SphinxQL 中使用此功能?用';'分隔选择语句是否足够?并通过这种方法将它们视为一批?
2) 如何在通过 mysql 库与 C# 连接的 SphinxQL 中使用此功能?(如何发送多个查询和管理多个结果集?)
sphinx - Sphinx:如何停止提交的查询?
在 sphinx 中,有时会出现一个查询需要很长时间才能完成的情况。有什么方法可以取消提交的查询或使用 SphinxQL 以某种方式停止它?(我不想杀死或停止 searchd 守护进程,只想杀死正在运行查询的线程)。
sphinx - Sphinx:sphinxql 中的 OR 运算符
我的数据库中有一个日期字段(Start_date),它在 sphinx 中将其索引为 sql_field_string,其格式如下:2000-12-12。当我想在该字段上进行搜索时,我会提交如下查询:
并且它正在工作,但是在使用这样的 OR 运算符提交查询时遇到问题,它不会返回任何结果,而实际上有很多结果:
当我使用括号作为值时,问题就解决了!
为什么会这样?
(我在我的 charset_table 中添加了“-”字符)。
来自 sphinx.conf 文件:
sphinx - 狮身人面像清除已删除的数据
从 Sphinx 索引中清除所有旧数据的最佳方法是什么?现在,我发出一个OPTIMIZE INDEX
命令,但这只是将作业添加到队列中。因此,我想如果我在优化命令之前测量索引大小,我可以在一个while循环中等待,直到索引大小减小?
虽然,这似乎不是最好的解决方案。我也尝试过FLUSH RAMCHUNK
,但这会影响 RAM 块,这不是我正在寻找的解决方案。我不仅要清除 RAM 保存的索引,还要清除整个索引。
在这种情况下,最佳做法是什么?
sphinx - Sphinx中具有CRC模式的单词之间的通配符搜索
我使用带有 CRC 模式和 min_infix_length = 1 的 sphinx,我想在关键字的字符之间使用通配符搜索。假设我的索引文件中有一些这样的数据:
当我搜索他们的名字以“mick”开头并以“l”结尾的所有记录时:
我希望结果应该是这样的:
但什么也没回来。我怎样才能做到这一点?
我知道我可以在 dict=keywords 模式下执行此操作,但出于某些原因我应该使用 crc 模式。
我还使用了 '^' 和 '$' 运算符但没有用。
sphinx - Sphinx MVA sql_attr_multi 结果总是在 FACET 查询的第一个字段上
我正在尝试在 Sphinx 中实现过滤器,以便我可以从同一个连接表中过滤掉两个 MVA 属性的结果(我需要的是双重条件,但因为 MVA 只有 2 个字段..),但无论我做什么,似乎我一直得到相同的结果,因为在多属性的第一个字段上总是有一个匹配项?
也许还有另一种解决方案,但我似乎无法找到我想要的结果,我必须简化 4 个表:产品、类别、价格和位置。
数据设置
下面是数据结构的示例:
狮身人面像设置:
MySQL转储:
测试 1
过滤器 USERID 的 SphinxQL 查询:
USERID 的结果(这次第一组似乎没问题,第二组返回所有内容):
我所期望的:
- 产品编号 (1000,1001,1002)
- 位置排名(1 与 3 计数,5 与 1 计数)
测试 2
过滤器 USERID 1000 和 RANK 5 的 SphinxQL 查询:
USERID 和 RANK 的结果(这次第一组似乎没问题,第二组返回所有内容):
我所期望的:
- 产品编号 (1001)
- 职位排名(5,计数为 1)
测试 3
过滤器 USERID 1000 和 RANK 4 的 SphinxQL 查询:
USERID 和 RANK 的结果(第一个返回产品,第二个返回所有内容):
我所期望的:
- 产品 ID(空集)
- 职位排名(空集)
我希望你们能理解我想要达到的目标并能帮助我吗?
sphinx - 狮身人面像和查询排名结果的第一个 AND 然后是 OR 的组合
我认为这是相当常见的情况,但无法弄清楚并找到任何有关它的信息。
假设我有以下文本:
- 狗讨厌猫
- 我的猫吃老鼠但讨厌狗
- 老鼠讨厌猫,但不关心狗
- 长颈鹿不关心任何猫
- 在大多数情况下,狗很勇敢
我无法弄清楚查询,它按以下顺序返回文本:
1)首先包含所有三个“狗”,“猫”和“老鼠”的所有文本,
2) 然后所有包含每对 ('dog', 'cat'), ('dog', 'mice'), ('cat', 'mice') 的文本不按特定顺序排列
3)然后所有包含“狗”、“猫”或“老鼠”的文本
因此,对给定文本的此类查询的结果应该是这样的(最好是较短的文本,但不一定)
- 我的猫吃老鼠但讨厌狗
- 老鼠讨厌猫,但不关心狗
- 狗讨厌猫
- 长颈鹿不关心任何猫
- 在大多数情况下,狗很勇敢
有人可以帮我吗?
sphinx - Sphinx(搜索) - 匹配关键字两次(三次等)的文档
有没有办法只输出包含n
搜索词匹配的文档?
Fe 我想输出包含搜索词"Pablo Picasso" | "Picasso Pablo"
至少两(三,n)次的所有文档。这样的查询会是什么样子?
我目前的查询是:
SELECT * FROM myIndex WHERE MATCH('"Pablo Picasso" | "Picasso Pablo"');
sphinx - 在 SphinxQL 中按顺序查找确切的单词
我有一个包含一些数字(id)的索引列,我需要提取与给定顺序中的一些数字完全匹配的行。
例如
“给我包含 1 后跟 1 后跟 25 后跟 30 的行”
1 1 1 2 2 25 25 26 30 31 => 有效
1 1 1 2 2 25 25 26 31 32 => 无效
1 1 1 2 2 2 2 2 25 30 30 => 有效
我正在尝试,1 >> 1 >> 2 >> 2
但它不起作用(我认为因为它将“1”匹配为单个字符而不是“单词”)