问题标签 [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.

0 投票
0 回答
148 浏览

c# - Sphinx:sphinxQL 中的批量查询

我正在使用 sphinx 搜索引擎进行全文搜索,我想将多个搜索查询一次性发送到 searchd 守护进程。我知道这在 SphinxAPI 中是可能的,但我想在 SphinxQL 中使用这个功能。我从 Sphinx 文档中读到:

从 2.0.1-beta 版开始,SphinxQL 支持多语句查询或批处理...(参考:+

所以我的问题是:

1) 如何在 SphinxQL 中使用此功能?用';'分隔选择语句是否足够?并通过这种方法将它们视为一批?

2) 如何在通过 mysql 库与 C# 连接的 SphinxQL 中使用此功能?(如何发送多个查询和管理多个结果集?)

0 投票
1 回答
64 浏览

sphinx - 什么是具有 net_idle 状态的 sphinx 线程?

我使用狮身人面像搜索引擎,有时当我跑步时

我看到一个线程,如下图所示,线程中的“Net_Idle”状态,其“时间”值上升到 100 秒,在某些情况下上升到 500 秒,然后自动消失。

在此处输入图像描述

这个线程是什么,它何时以及为什么运行?

0 投票
1 回答
81 浏览

sphinx - Sphinx:如何停止提交的查询?

在 sphinx 中,有时会出现一个查询需要很长时间才能完成的情况。有什么方法可以取消提交的查询或使用 SphinxQL 以某种方式停止它?(我不想杀死或停止 searchd 守护进程,只想杀死正在运行查询的线程)。

0 投票
0 回答
344 浏览

sphinx - Sphinx:sphinxql 中的 OR 运算符

我的数据库中有一个日期字段(Start_date),它在 sphinx 中将其索引为 sql_field_string,其格式如下:2000-12-12。当我想在该字段上进行搜索时,我会提交如下查询:

并且它正在工作,但是在使用这样的 OR 运算符提交查询时遇到问题,它不会返回任何结果,而实际上有很多结果:

当我使用括号作为值时,问题就解决了!

为什么会这样?

(我在我的 charset_table 中添加了“-”字符)。

来自 sphinx.conf 文件:

0 投票
1 回答
83 浏览

sphinx - 狮身人面像清除已删除的数据

从 Sphinx 索引中清除所有旧数据的最佳方法是什么?现在,我发出一个OPTIMIZE INDEX命令,但这只是将作业添加到队列中。因此,我想如果我在优化命令之前测量索引大小,我可以在一个while循环中等待,直到索引大小减小?

虽然,这似乎不是最好的解决方案。我也尝试过FLUSH RAMCHUNK,但这会影响 RAM 块,这不是我正在寻找的解决方案。我不仅要清除 RAM 保存的索引,还要清除整个索引。

在这种情况下,最佳做法是什么?

0 投票
1 回答
79 浏览

sphinx - Sphinx中具有CRC模式的单词之间的通配符搜索

我使用带有 CRC 模式和 min_infix_length = 1 的 sphinx,我想在关键字的字符之间使用通配符搜索。假设我的索引文件中有一些这样的数据:

当我搜索他们的名字以“mick”开头并以“l”结尾的所有记录时:

我希望结果应该是这样的:

但什么也没回来。我怎样才能做到这一点?

  • 我知道我可以在 dict=keywords 模式下执行此操作,但出于某些原因我应该使用 crc 模式。

  • 我还使用了 '^' 和 '$' 运算符但没有用。

0 投票
0 回答
258 浏览

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(空集)
  • 职位排名(空集)

我希望你们能理解我想要达到的目标并能帮助我吗?

0 投票
1 回答
76 浏览

sphinx - 狮身人面像和查询排名结果的第一个 AND 然后是 OR 的组合

我认为这是相当常见的情况,但无法弄清楚并找到任何有关它的信息。

假设我有以下文本:

  • 狗讨厌猫
  • 我的猫吃老鼠但讨厌狗
  • 老鼠讨厌猫,但不关心狗
  • 长颈鹿不关心任何猫
  • 在大多数情况下,狗很勇敢

我无法弄清楚查询,它按以下顺序返回文本:

1)首先包含所有三个“狗”,“猫”和“老鼠”的所有文本,

2) 然后所有包含每对 ('dog', 'cat'), ('dog', 'mice'), ('cat', 'mice') 的文本不按特定顺序排列

3)然后所有包含“狗”、“猫”或“老鼠”的文本

因此,对给定文本的此类查询的结果应该是这样的(最好是较短的文本,但不一定)

  • 我的猫吃老鼠但讨厌狗
  • 老鼠讨厌猫,但不关心狗
  • 狗讨厌猫
  • 长颈鹿不关心任何猫
  • 在大多数情况下,狗很勇敢

有人可以帮我吗?

0 投票
1 回答
62 浏览

sphinx - Sphinx(搜索) - 匹配关键字两次(三次等)的文档

有没有办法只输出包含n搜索词匹配的文档?

Fe 我想输出包含搜索词"Pablo Picasso" | "Picasso Pablo"至少两(三,n)次的所有文档。这样的查询会是什么样子?

我目前的查询是: SELECT * FROM myIndex WHERE MATCH('"Pablo Picasso" | "Picasso Pablo"');

0 投票
1 回答
42 浏览

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”匹配为单个字符而不是“单词”)