我正在将通用 Sphinx 与 Python 一起使用(尽管我也针对 PHP 进行了测试并遇到了同样的问题)。我有一个表,其中有几个字段,我希望能够在 sphinx 中对其进行搜索,但似乎只有一些字段被索引。
这是我的来源(dbconfig 只有连接信息):
source bill_src : dbconfig
{
sql_query = \
SELECT id,title,official_title,summary,state,chamber,UNIX_TIMESTAMP(last_action) AS bill_date FROM bill
sql_attr_timestamp = bill_date
sql_query_info = SELECT * FROM bill WHERE id=$id
}
这是索引
index bills
{
source = bill_src
path = /var/data/bills
docinfo = extern
charset_type = sbcs
}
我正在尝试使用扩展匹配模式。看起来title
andsummary
很好,但是索引中忽略了official_title
, thestate
和字段。chamber
例如,如果我这样做:
@official_title Affordable Care Act
我得到:
query error: no field 'official_title' found in schema
但是使用 @summary 的相同查询会产生结果。有什么我想念的想法吗?
编辑 这是我要索引的表:
+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| bt50_id | int(11) | YES | MUL | NULL | |
| type | varchar(10) | YES | | NULL | |
| title | varchar(255) | YES | | NULL | |
| official_title | text | YES | | NULL | |
| summary | text | YES | | NULL | |
| congresscritter_id | int(11) | NO | MUL | NULL | |
| last_action | datetime | YES | | NULL | |
| sunlight_id | varchar(45) | YES | | NULL | |
| number | int(11) | YES | | NULL | |
| state | char(2) | YES | | NULL | |
| chamber | varchar(45) | YES | | NULL | |
| session | varchar(45) | YES | | NULL | |
| featured | tinyint(1) | YES | | 0 | |
| source_url | varchar(255) | YES | | | |
+--------------------+--------------+------+-----+---------+----------------+