2017-01-30 2 views
0

Sphinx 구성에서 regexp_fitler을 사용하여 좋은 효과를 얻었지만, 내 선택의 전체 색인에 적용됩니다.스핑크스 인덱스의 특정 필드에 Regexp_filter?

내는 idx_example에 대한 선택의 경우 :

Select Name,Description,City,State from TableA

내가, 예를 들어 regexp_filter을

NY > New York

나는 인스턴스에 대한 Description 분야의 문제로 실행할 수 있습니다. 나는 더 복잡한 패턴으로 이것을 해결할 수 있다는 것을 알았지 만, State 필드는 전체 이름을위한 약어입니다. regexp_filterState 필드에서만 사용하도록 강제 할 이유가 없습니다.

답변

0

그것에 대한 공식적인 구문은 없습니다. 가장 큰 문제점 중 하나는 스핑크스가 쿼리에 어떻게 적용 할 것인가입니다. 일관되게 적용하기 어려울 수 있습니다.

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을 저장하고 매핑을 특정하기 위해 태그를 사용하여 영역 또는 regexp를 사용하는 것입니다. 그것을 피하기를 희망했다. – user3649739

관련 문제