2017-01-21 4 views
0

스핑크스를 사용하고 있으며 대부분의 정상적인 사용 쿼리에서 예상대로 결과를 반환합니다. 그러나 하나의 쿼리는 그렇게하지 않습니다.스핑크스의이 쿼리가 실패하는 이유는 무엇입니까?

"air compressor @provider 2"/1 

사람이 쿼리는 여전히 '2'는 다른 ID를 가진 공급자의 결과를 반환 이유를 설명하십시오 수 :

$cl = new SphinxClient(); 
$cl->SetServer("localhost", 9312); 
$cl->SetMatchMode(SPH_MATCH_EXTENDED ); 
$cl->SetRankingMode (SPH_RANK_SPH04); 
$q = '"' . $cl->EscapeString($_REQUEST['keyword']) . ' @provider 2"/1'; 
$result = $cl->Query($q, 'mainIndex'); 

쿼리가되고 끝 : 나는 다음과 같은 쿼리 코드를 사용하고?

답변

0

그럼, 쿼럼 연산자는 '가장 바깥 쪽'연산자입니다. 따옴표 안에있는 모든 단어는 그것에 사용 된 단어입니다. 거기에는 특별한 의미가 없습니다. 따라서 쿼리는

"air compressor provider 2"/1 

과 동일하므로이 4 단어 중 하나만 필요합니다. 당신이 두 개의 단일 키워드에 대한 쿼럼을 단지 것, 다음 필드 구문이 작동 할

"air compressor"/1 @provider 2 

을 의미하고, 공급자에 맞게 '2'가 필요한 경우

이 궁금하다.

관련 문제