2014-02-21 2 views
0

우리는 우리의 데이터베이스를 검색하기 위해 RealTime (RT) 인덱스가있는 스핑크스를 사용합니다. 지금은 경도, 위도, 제목, 내용 등의 필드가 포함되어 있으며 모두 잘 작동합니다. 문제는 관계형 태그 테이블을 구현하려는 것이고 어떻게해야하는지 잘 모르는 것입니다. (다 우리가 가능한 경우 수행하고자하는RT 스핑크스의 다른 매개 변수와 조인 된 태그 검색을 결합

$this->_sphinxClient->setMatchMode(SPH_MATCH_EXTENDED2); 

$this->_sphinxClient->SetGeoAnchor('latitude', 'longitude', (float)$this->latitude, (float)$this->longitude); 

$this->_sphinxClient->SetFilterRange('price', $this->_priceMin, $this->_priceMax); 

// And getting the final result with the: 
$result = $this->_sphinxClient->Query($this->searchString, 'rt'); 

입니다 중 하나를 사용 MVA : 현재 구성에서

우리는 다음과 같은 (PHP 용) sphinxApi에서 사용할 수있는 미리 구성된 방법을 많이 활용 값 속성)을 사용하거나 조인 문으로 두 번째 결과를 검색하고 태그가없는 결과를 시드합니다.

우리는 지금이 옵션 중 하나를 사용할 수 없으므로 누구나 아이디어가 있다면 여기에서 약간의 도움을 바랍니다. id/tagname 조합과 함께 다른 색인을 사용하거나 현재 색인에 문자열 속성을 사용합니까? 첫 번째 검색어와 동일한 검색어로 검색을 구현하거나 두 번째 검색어에서 해당 결과를 검색하려면 tagjoin?

중요한 내용을 놓친 경우 알려 주시면 감사하겠습니다.

답변

1

태그를 현재 색인에 첨부하십시오. 태그를 검색해야하는 경우에는 전체 텍스트 입력란에 태그를 삽입하고 결과에 태그를 넣으려면 문자열 속성을 삽입하십시오. 당신이 그룹을 할 필요가있는 경우에, 당신은 할 수 있습니다

  • 는 MVA를 사용하지만 태그 이름과 태그 ID
  • JSON 속성을 사용 사이의지도를 확인해야합니다. MVA와 같은 문자열 배열에서 IN을 사용할 수 있습니다. 좀 더 진보 된 것을 위해 ALL() 또는 ANY() 함수를 사용할 수 있습니다.

그룹화 할 때 SetArrayResult (true)를 사용해야합니다. 또한 SphinxQL 인터페이스로 전환하는 것이 좋습니다.