我在mysql中将bigint列命名为face。这是我的sphinx.conf
source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = pass
sql_db = nums
sql_port = 3306 # optional, default is 3306
sql_query = SELECT id,id AS id_attr,tel,name,sex,face from tel
sql_attr_uint = id_attr
sql_attr_bigint = face
}
index num
{
rt_attr_bigint = face
rt_field = face
source = src1
path = C:/sphinx/bin/data/numaralar
}
我可以通过姓名和电话进行搜索,但不能通过面部搜索。
致命错误:未捕获的异常' Foolz \ SphinxQL \ Exception \ DatabaseException'消息' [1064]索引号:查询错误:无字段' face'在模式中找到[SELECT * FROM nums WHERE MATCH('(@ face 123456)')LIMIT 0,10 OPTION max_matches = 5000; SHOW META]'在.. ..
为什么会这样?
答案 0 :(得分:1)
您正尝试将该值用作字段。 @ fulltext运算符(实际上是整个MATCH()全文查询,仅对字段进行操作。
您已将face
定义为属性。属性在全文查询中不起作用。
可以
face
成为字段 而不是(删除sql_attr_bigint
)或将两者设为属性和字段。 (为此,必须复制它,就像你复制了id,一个用于字段,一个用于属性。或者使用sql_field_string
,但这会产生一个字符串属性)或
SELECT * FROM nums WHERE `face` = 123456 LIMIT 0, 10