问题标签 [sphinx]

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 投票
2 回答
561 浏览

php - Sphinx(或其他第三方)搜索引擎是否适用于我的情况,还是我应该创建自己的?

我正在我的网站上创建分类广告的搜索功能。以下是我需要满足的一些标准:

  • 搜索“bmw 520”时,仅匹配这两个单词完全按照此顺序出现的位置。仅与“bmw”或仅“520”不匹配。

  • 搜索“bmw 330ci”时,将返回上述结果,但是,有和没有 ci 扩展名。众所周知,汽车中有许多扩展名(i、ci、si、fi 等)。

  • 我希望“减号”“排除”所有包含符号后单词的返回值,例如:“bmw -330”将返回所有“bmw”结果而不返回“330”结果。(用 NOT 代替减号也可以)

  • 所有像“é”这样的特殊字符重音都被转换为它们的简单值,在本例中为“e”。

  • 在搜索字符串中完全忽略的单词列表。

我需要Sphinx还是应该把它写在一个php文件中?

你建议我怎么做?

谢谢

0 投票
2 回答
3009 浏览

sphinx - Sphinx 中的 MVA 属性

任何人都可以帮助我了解在 Sphinx 中创建 MVA(多值)属性的预期数据格式吗?

我有一个 MySQL 函数,它返回一行以逗号分隔的整数,用 GROUP_CONCAT, 作为 blob 进行排序。我还有两个 MVA 属性,它们将 JOIN 语句的结果与GROUP_CONCAT, 作为 blob(由 ThinkingSphinx 生成)进行整理。这些都包含在我sql_query的 sphinx.conf 中。

我尝试在控制台中的一个小结果集上运行 SQL,它可以工作:对于所有 MVA 列,结果是一个包含以下数据的 blob:

等等。JOIN使用/GROUP_CONCAT组合索引正确生成的两个 MVA 属性。但是,使用 MySQL 函数生成的 MVA 属性会导致索引失败(似乎很少或没有数据被索引)。尽管查询在控制台中工作得非常好..

所以数据格式似乎是相同的,但 Sphinx 拒绝了其中一列。有没有人知道定义 MVA 属性的任何陷阱,这可能有助于我调试这个?

0 投票
3 回答
1725 浏览

sphinx - 狮身人面像删除的文件

我这个问题困扰了很久,也没有找到解决办法。我想这可能是每个人在使用 Sphinx 时都会遇到的问题,但我无法获得任何有用的信息。

我有一个索引和一个增量。我在一个 php 模块中查询了两个索引,然后显示结果。对于结果中的每个 ID,我为模型创建一个对象,并显示该模型的主要数据。

我从数据库中删除了一个文档,物理上。

当我查询索引时,这个已删除文档的 ID 仍然存在(在 sphinx 结果集中)。也许我可以通过代码检测到这一点,并避免显示它,但结果集 sphinx 给我的结果是错误的。xxx total_found,当真的是 xxx-1。例如,Sphinx 给了我前 20 个结果,但是这 20 个结果中的一个已经不存在了,所以我只需要显示 19 个结果。

我每天重新索引一次主索引,每 5 分钟重新索引一次 delta 索引。

这个有解决办法吗??

提前致谢!!

0 投票
1 回答
171 浏览

ruby-on-rails - Sphinx 沿三个向量而不是两个向量的唯一键

我正在尝试在单个 Rails 应用程序下托管的多个“站点”上实现thinking-sphinx。我正在与thinking-sphinx 的开发人员合作,对更精细的细节进行分类,并取得了不错的进展,但我需要一个数学问题的帮助:

通常在thinking-sphinx搜索索引中制作唯一ID的公式是取id,乘以可搜索模型的总数,再加上当前索引模型的数量:

这很好用,但现在我也通过一个 entity_id 进入组合,所以有三个 vextors 使这个 ID 唯一。有人可以帮我弄清楚使用这三个变量来保证 id 永远不会发生冲突的等式:

实体 ID 是一个整数。

我想到了:

但这会导致碰撞。

任何帮助将不胜感激 :)

0 投票
3 回答
649 浏览

ruby-on-rails - 使用 Sphinx(Thinking Sphinx)或其他全文搜索引擎对以搜索词开头的字段进行优先排序

我正在使用 sphinx 和思维 sphinx 来搜索客户数据库。客户元数据(电子邮件、电话等)分布在多个表中,sphinx 索引客户等的所有注释。我遇到的问题是我希望以搜索词开头的文本字段首先显示在搜索中。即搜索“hods”应按以下顺序返回结果:

  • 霍德斯
  • 霍德一家
  • 霍德森
  • 方法

这意味着应该优先考虑(大致按此顺序):

  • 词组开头
  • 完成单词
  • 词的开头

我尝试使用复合搜索词来实现这一点(例如“^hods | hods | hods* | *hods”)。

这样的事情可以确保我找到所有合适的结果——但似乎不会影响它们的排名!!我在文档中也找不到任何有用的东西!!

有任何想法吗?狮身人面像有可能吗?任何其他可能的搜索解决方案?

0 投票
1 回答
526 浏览

php - Sphinx 要求,它可以在我的 Webhostings 提供商上使用吗?

我仍在寻找要在我的虚拟主机提供商服务器 (one.com) 上使用的搜索引擎,但仍然没有找到。

我听说过关于 Sphinx 的好消息,运行它有什么要求?

手册我看过了,不多说,好像应该可以了。。。就是想先问问专业人士。

我无权访问 mysql 配置...(我的意思是我无法打开和编辑 mysql 设置的 my.cnf 或 my.ini 文件,因为它不是我的服务器)。

另外,Sphinx 不需要 mysql 数据库是“全文”,对吗?

谢谢

0 投票
2 回答
394 浏览

mysql - 在 mySQL 数据库上创建搜索

我正在尝试通过 mySQL 数据库为我的网站创建搜索。我开始使用Sphinx,但在得知索引不会实时更新时犹豫不决。我确实看到他们有一个几乎实时的更新,但我担心这不适合我的系统,因为新内容每分钟都会添加到数据库中。这个新内容需要立即添加,每次更新后重新索引似乎很奇怪。

我目前正在研究基于 Lucene 构建的Solr,但这似乎也不符合我的需求,因为它更多的是基于文件的搜索而不是数据库搜索。配置一个相对简单的搜索看起来也很麻烦。

我还发现了这个 stackoverflow 问题,但也遇到了一些问题。首先是我不是只搜索一个领域,而是许多领域。另外,我担心纯粹在 SQL 中完成的搜索在我的数据库上可能太慢,我的数据库有望存储数十万条记录,如果不是更多的话。

如果有人对我提到的任何软件或我没有提到的任何软件有任何意见,欢迎所有想法。如果这有什么不同,我将使用 java 作为后端。谢谢。

0 投票
3 回答
5743 浏览

php - 如何在 Sphinx 的一个索引中使用多个源?

Sphinx 配置文件提示它支持一个索引的多个源,我如何实际指定它?

这是配置文件中的片段:

我尝试将其设置为以下格式:

我也尝试过两次使用源变量,例如:

我怀疑我只是个傻瓜,因为我不确定在配置文件中使用的语法。有任何想法吗?

使用第二个代码片段我得到以下错误:

这两个来源是 iwa_events 和 iwa_publications。两者都有唯一的 id 列,并且两个源都在单独索引时工作。

0 投票
3 回答
1047 浏览

php - PHP解包问题

问题是,为什么"N*"ifsubstr应该返回 4 个字节,而它们会被解包为 N?为什么要双重分配?

UPD:此代码是Sphinx原生 PHP 连接器的一部分。经过一些代码破解后,很明显该代码提取了 4 字节整数。substr但是双重赋值和/背后的逻辑N*我仍然不清楚。我提供赏金以最终理解它。

0 投票
1 回答
1533 浏览

ruby-on-rails - 思考狮身人面像没有索引新添加的记录

我正在使用 sphinx 搜索 2 个模型及其关联。我正在使用增量索引。在开发模式(Ubuntu)下,我的开发盒上一切正常。但是,在暂存盒生产环境中,当我创建新记录时,我需要再次构建索引以使新创建的记录可搜索。更奇怪的是,当我使用脚本/控制台创建记录时,它们似乎被编入索引并且可以搜索。

对于更新后的关联工作,我为所有关联模型设置了一个 after_save 方法,将这两个模型记录的增量设置为 true。我不确定这是否与此有关。

我检查了权限,认为 sphinx gem 版本,它们似乎都很好。有什么问题?

编辑

我还检查了http://freelancing-god.github.com/ts/en/common_issues.html#deltas但它似乎不起作用。是的,服务器在 phusion 乘客上运行。