2013-07-23 5 views
0

"tags"라는 필드가 있으며 "Music, Art, Sports, Food"등의 값이 있습니다.이 필드에는 PHP-Sphinx의 setFilter 함수를 어떻게 사용할 수 있습니까? 정수형이어야하고 PHP에서 배열로 사용해야한다는 것을 알고 있습니다. 따라서 태그에 숫자 필드를 사용하면 구분 기호 (이 경우 쉼표)는 어떨까요? 현재,이 같은 "sql_attr_multi"...Sphinx MVA를 사용할 수 없습니다 sql_attr_multi

sql_attr_multi = uint tags from field 

를 사용하고 난 사용자가 선택한 키워드, 음악, 스포츠의 기반으로 검색을 필터링 할 수 있고, 음식 등으로 만 MVA는 권리 등등 옵션을 사용하십시오. 그러나 나는 이것을 알아낼 수 없다. 어떻게해야 하는가? 모든 태그 요소를 숫자 값으로 저장하고 태그 필드를 int로 만들 수 있습니다. 하지만 쉼표는 어떻게됩니까? 또는 전체 문자열 (음악, 미술, 스포츠, 음식)을 정수로 변환하는 방법은 무엇입니까? 나중에 PHP를 사용하여 setFilter를 호출합니다.

도움이 매우 감사합니다.

답변

0

MVA를 사용하면 각 태그에 이미 고유 ID가 있음을 알 수 있습니다.

태그 (PK 포함)와 문서에 합류하는 다 대다 테이블 및 태그에 대한 별도의 테이블이있는 경우 다음 중 하나입니다. (일반적인 형태로 태그를 저장하는 일반적인 방법)

텍스트가 포함 된 텍스트 열이있는 경우 필드를 사용하는 것이 더 쉽습니다. 메인 텍스트 쿼리의 필드별로 쉽게 필터링 할 수 있습니다.

바삭 크림 @tags 식품

예를 들어, (그게 확장 모드 쿼리)

(그러나 속성과 당신이 할 수처럼 필드를 그룹화 할 수 없습니다) 답장을

+0

감사합니다. 그러나 나는 이것을 전혀 이해하지 못하고있다. 내 질문이 분명하지 않을 수 있습니다. 나는 상황을보다 명확하게 여기에 예를 들어 설명 할 것이다 http://stackoverflow.com/questions/17827965/sphinx-multi-value-attribute-filter 어떤 도움을 주시면 감사하겠습니다. – Jay