使用 int 主键的 Sphinx 搜索
Sphinx search with int primary key
我正在尝试将 int 主键添加为 sql_field_string,当我旋转索引时,我收到消息:
警告:未找到属性 'purchase_id' - 忽略
我的配置:
sp_purchases_source : sp_source_config
{
sql_query = \
SELECT sp_purchase.id AS purchase_id, sp_purchase.status, sp_purchase.name, sp_purchase.description_small, sp_purchase.description_full, sp_purchase.news,\
UNIX_TIMESTAMP(sp_purchase.date_current) AS date_current, UNIX_TIMESTAMP(sp_purchase.stop_date) AS stop_date, sp_purchase.image, sp_purchase.access, \
sp_purchase.is_vip, sp_purchase.is_foreign, sp_purchase.owner_username, sp_purchase.owner_id, sp_purchase.count_users, sp_purchase.count_comments \
FROM sp_purchase \
WHERE sp_purchase.is_hidden = 0 AND sp_purchase.status IN (2,4,17)
sql_ranged_throttle = 0
sql_field_string = purchase_id
sql_field_string = name
sql_field_string = description_small
sql_field_string = description_full
sql_field_string = owner_username
sql_field_string = news
sql_attr_timestamp = date_current
sql_attr_timestamp = stop_date
sql_attr_string = image
sql_attr_uint = access
sql_attr_uint = owner_id
sql_attr_uint = status
sql_attr_bool = is_vip
sql_attr_bool = is_foreign
sql_attr_uint = count_users
sql_attr_uint = count_comments
}
如何在索引中添加 id 字段?
好吧,document-id 已经 了一个虚拟属性。它就像一个真正的属性一样工作。
也可以 filter/sort/group 按 id。
sphinxql> SELECT id,name FROM sp_purchases WHERE id BETWEEN 10 and 20;
...要使它成为一个字段,必须更棘手一些,例如将其复制两次。
sql_query = \
SELECT sp_purchase.id, sp_purchase.id AS purchase_id, sp_purchase.status, ...
第一列是总是 document-id,所以将用于虚拟属性。
因此 purchase_id
成为 'standard' 字段。
我正在尝试将 int 主键添加为 sql_field_string,当我旋转索引时,我收到消息: 警告:未找到属性 'purchase_id' - 忽略
我的配置:
sp_purchases_source : sp_source_config
{
sql_query = \
SELECT sp_purchase.id AS purchase_id, sp_purchase.status, sp_purchase.name, sp_purchase.description_small, sp_purchase.description_full, sp_purchase.news,\
UNIX_TIMESTAMP(sp_purchase.date_current) AS date_current, UNIX_TIMESTAMP(sp_purchase.stop_date) AS stop_date, sp_purchase.image, sp_purchase.access, \
sp_purchase.is_vip, sp_purchase.is_foreign, sp_purchase.owner_username, sp_purchase.owner_id, sp_purchase.count_users, sp_purchase.count_comments \
FROM sp_purchase \
WHERE sp_purchase.is_hidden = 0 AND sp_purchase.status IN (2,4,17)
sql_ranged_throttle = 0
sql_field_string = purchase_id
sql_field_string = name
sql_field_string = description_small
sql_field_string = description_full
sql_field_string = owner_username
sql_field_string = news
sql_attr_timestamp = date_current
sql_attr_timestamp = stop_date
sql_attr_string = image
sql_attr_uint = access
sql_attr_uint = owner_id
sql_attr_uint = status
sql_attr_bool = is_vip
sql_attr_bool = is_foreign
sql_attr_uint = count_users
sql_attr_uint = count_comments
}
如何在索引中添加 id 字段?
好吧,document-id 已经 了一个虚拟属性。它就像一个真正的属性一样工作。
也可以 filter/sort/group 按 id。
sphinxql> SELECT id,name FROM sp_purchases WHERE id BETWEEN 10 and 20;
...要使它成为一个字段,必须更棘手一些,例如将其复制两次。
sql_query = \
SELECT sp_purchase.id, sp_purchase.id AS purchase_id, sp_purchase.status, ...
第一列是总是 document-id,所以将用于虚拟属性。
因此 purchase_id
成为 'standard' 字段。