2017-01-30 9 views
0

私のSphinx構成では、regexp_fitlerの効果がありましたが、私の知る限り、選択したインデックス全体に適用されます。Sphinxインデックスの特定のフィールドにRegexp_filter?

私はidx_exampleのための選択の場合:

Select Name,Description,City,State from TableA

と私は、例えばregexp_filterを行います

NY > New York

私は、例えばDescription分野での問題に実行することができます。私はより複雑なパターンでこれを解決することができると思いますが、Stateのフィールドはフルネームの頭字語です。私は何とかregexp_filterStateフィールドでのみ動作させることはできません。

答えて

0

それには文法的な構文はありません。主な問題の1つは、スフィンクスがクエリにどのように適用するかです。それを一貫して適用するのは難しいでしょうか。

これは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) 

(expansion.short上のインデックスがあることを確認のテーブルを持っているワンダー!)

+0

ありがとう、それは私がやっている他の仕事を回避するだろう。計画は今、HTML全体を保存し、マッピングを特定するために、タグを使ってゾーンまたは正規表現を使用することです。それを避けることを望んでいた。 – user3649739

関連する問題