将 MySQL 转换为 Sphinx 搜索平台

Converting MySQL to a Sphinx Search Platform

目前正在为超过 12 GB/月的 MySQL 数据开发内部搜索引擎。

我们目前有两个表格,练习处方和练习信息。

两个表都包含一个列,实践编号,它标识实践信息及其处方信息。

我正在尝试将系统从 MySQL 搜索迁移到 Sphinx 搜索。

我遇到的问题是练习编号的格式是 STR:NUM:NUM。

Sphinx 搜索表示 ID 格式无效或为 Null,ID 只能是 NUM。

我们当前 ID 的一个示例是 YV0091,它将在两个表中都有相应的数据。

ID 是我们行业中的标准化 ID,因此无法更改或操纵。

我应该怎么做才能解决这个问题?

嗯,文档 ID 本身,实际上 Sphinxes 'primary key' 确实需要是一个简单的整数。但它 不需要 匹配数据库中的实际列。 (有点像 innodb,如果没有整数主键,它会在内部创建一个 'rowid')

las sphinx 没有 'autoincrement' 风格的分配 id 的方法,所以需要自己设计。例如使用 mysql 用户变量...

sql_query_pre = SET @rowid:=1
sql_query = SELECT @rowid:=@rowid+1 as id, practice_id, name, ... 
sql_attr_string = practice_id

... 还包括将您的练习 ID 作为 属性。这意味着仍然可以在查询中获取它,例如,与其在 sphinxql 中使用 SELECT id FROM ...,不如直接使用 SELECT practice_id FROM ...