目前正在开发内部搜索引擎,每月超过12 GB的MySQL数据。
我们目前有两张表,练习处方和练习信息。
两个表都包含一个列,练习号,用于识别练习信息及其处方信息。
我正在尝试将系统从MySQL搜索迁移到Sphinx Search。
我遇到的问题是练习号码的格式为STR:NUM:NUM。
Sphinx Search表示这是一种无效或无效的ID格式,ID只需要为NUM。
我们当前ID的一个示例是YV0091,它将在两个表中都有相应的数据。
由于ID是我们行业中的标准ID,因此无法更改或操纵ID。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
文档ID本身,在效果中,Sphinxes的“主键”确实需要是一个简单的整数。但它并不需要来匹配数据库中的实际列。 (有点像innodb,如果没有整数主键,它会在内部创建'rowid')
唉,狮身人面像没有“自动增量”式的方式来分配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 ...
。