2010-08-16 1 views
0

이 질문이 다른 질문과 관련된 방법입니다 : Sphinx Filters - Can I have an 'OR' between filters attributes?스핑크스 : 복잡한 논리를 속성과 함께 사용할 수 있습니까?

이 스핑크스는 지금 속성을 필터링에 대한 지원 또는 논리가 나에게 보이지만 스핑크스 생각을 통해 그 기능을 사용하는 방법은 없습니다.

생각하는 스핑크스에서 속성으로 필터링하기 위해 복잡한 논리를 사용할 수 있습니까? 기본적으로, 난 할 노력하고있어하기와 같은 예를 들어 뭔가를 내 검색에 속성에 대한 조건을 지정할 수 있습니다 : a OR ((NOT a) AND b), 내가 지금처럼 사용합니다 :

((attribute_a == true) OR (attribute_a == false AND attribute_b IN [x,y,z]))

또는 유사한 무언가. 문제는 둘 다 : with 및 : with 해시를 예상하지 않고 AND (또는 AND NOT)로 각 조건을 결합합니다.

답변

1

안녕 Sorenly 당신은 아마이

Model.search "같은 것을 사용할 수 있습니다 (field_name1 값 1 @ | 값 2) (@ field_name2 VALUE3 | VALUE4), : match_mode => 다음은 확장

'|'

. 동일시되고 또는 스핑크스 공간으로 동일시 (== 참 (attribute_a) OR (attribute_a == IN AND 거짓 attribute_b [X, Y, Z])) =>

Model.search "((@attribute_a 1) | (attribute_a 0 (attribute_b의 X | Y | z)) )"I 결국 다른 용액으로했다하더라도, 작동하는 것으로 보인다 :match_mode => :extended

+0

이 프로젝트에서 ... 다음 번에는 스핑크스를 사용하기에 편리 할 것입니다. 감사 :-) – eyko