2011-08-28 1 views
4

최근 스핑크스 질문이 많이 있습니다. 다른 하나는 다음과 같습니다.Thinking Sphinx : 모델 색인의 특정 필드 만 쿼리

일부 검색에는 색인 정의에 포함 된 모든 필드 중 일부만 쿼리하고 싶습니다. 특정 모델에 대한 글로벌 검색을 제한하는 가장 가까운 것, 이것에 어떤 것도 찾을 수없는 것 같습니다.

그래서 .. 인덱스의 특정 하위 필드 집합 만 쿼리 할 수 ​​있습니까?

답변

8

이 스핑크스의 extended match syntax를 통해 가능하다 :

Model.search "@ (이름, 설명) 루비 팬케이크": match_mode이> =

이름과 설명은 당신이 검색하는 필드입니다

확장 , 'ruby pancakes'가 검색어입니다.

Model.search "@(name,description) ruby pancakes" 
+0

최고 : 스핑크스 V3 밖으로 때 – rogerkk

1

Thinking Sphinx에 대해 잘 모르겠지만 SphinxQL을 통해 직접 Sphinx를 친다면 일치하는 필드를 지정할 수있는 것보다 더 잘 알고 있습니다.

TS 당신에게이 기능 ... 나는 잠시 동안 TS와 함께 일하지 않은

1

노출 didnt는 경우에 나는 놀랠 것입니다,하지만 난 당신이 사용하는 필드의 일부를 포함하는 별도의 인덱스를 만들 수 있습니다 기억 귀하의 주요 색인에. 스핑크스가 색인을 작성하는 데 사용하는 필드를 구분하지 않는다고 생각합니다. 그 이유는 전체 텍스트 검색 서버를 사용하여 여러 필드의 콘텐츠를 한꺼번에 검색하기 때문입니다.

다른 필드와 함께 새 인덱스를 작성하는 방법과 기본값 대신이 새 인덱스를 사용하는 방법을 확인하십시오.

3

는 이제 documentation 방금 ​​같은 것을 할 필요가 있도록 확장 모드는 기본적으로 설정되어 있다고 말한다. 매력처럼 작동합니다.