关于Sphinx指数特定领域的Regexp_filter?

时间:2017-01-30 18:22:53

标签: regex sphinx

我在regexp_fitler配置中使用Sphinx效果很好,但据我所知,它适用于我的选择中的整个索引。

如果我选择的idx_example是:

Select Name,Description,City,State from TableA

我做了一个regexp_filter,例如

NY > New York

我可以在例如Description字段中遇到问题。我意识到我可以用更复杂的模式来解决这个问题,但是我得到的State字段是全名的缩略语,没有理由我可以以某种方式强迫regexp_filter仅采取行动State字段。

1 个答案:

答案 0 :(得分:0)

它没有正式的语法。其中一个主要问题是sphinx如何将其应用于查询。难以始终如一地应用它。

可以使用mysql函数完成,但是如果应用大型列表会很麻烦。

 sql_query = Select Name,Description,City,REPLACE('NY','New Your',State) as State \
    FROM TableA

想知道是否可以通过加入实现它,有一个扩展表'

short,full
NY,   New York
CA,   California

然后

sql_query = Select Name,Description,City,coalesce(e.full,State) as State \
   FROM TableA LEFT JOIN expansion e ON (state=short)

(确保expand.short上有索引!)