Datetime 斯芬克斯中的索引日期时间
我的数据库中有一些datetime字段,我想搜索这些字段。sphinx中有一个sql_attr_timestamp属性,它不是索引数据,只是用于过滤,也仅适用于sql源类型(mysql、pgsql、mssql)。那么,有没有一种方法可以为sphinx中的datetime字段(或日期的组成部分)编制索引?sphinx查询的全文部分不是必需的,即您可以跳过它并进行如下查询:Datetime 斯芬克斯中的索引日期时间,datetime,indexing,sphinx,Datetime,Indexing,Sphinx,我的数据库中有一些datetime字段,我想搜索这些字段。sphinx中有一个sql_attr_timestamp属性,它不是索引数据,只是用于过滤,也仅适用于sql源类型(mysql、pgsql、mssql)。那么,有没有一种方法可以为sphinx中的datetime字段(或日期的组成部分)编制索引?sphinx查询的全文部分不是必需的,即您可以跳过它并进行如下查询: select * from idx where published = ... 或 如果使用SphinxAPI,只需将查询设
select * from idx where published = ...
或
如果使用SphinxAPI,只需将查询设为空即可。
另一个在某些情况下可能有意义的技巧是将时间值放入全文字段而不是属性中(使用时只需不为此指定sql\u attr\u timestamp)。在某些情况下,这可能会提高性能(例如,当您有大量文档,但只有少数文档符合标准时)。
在这种情况下,请考虑:
- 时间值将如何在FT字段中标记,也许您会这样做 需要将YYYYMMDD改为YYYY-MM-DD以确保它仍然是 单字
- 是否希望在使用
使用所有字段的查询,如果不使用,可以将其包装在
一些特殊的前缀/后缀,例如YYYY-MM-DD将变成
DTYYYYMMDDT,那么有人发现它的几率要低得多 而不仅仅是YYYYMMDD或YYYY-MM-DD(如果-是分隔符)
select * from idx where inserted > ...