2013-07-11 3 views
1

동영상 테이블에서 다음과 같은 색인을 생성했습니다 : movie_name, languages (텍스트) 나는 또한 같은 그래서 기본적으로 예를 들어 기록이 보인다 popularity 열 속성 로 있습니다스핑크스 검색 관련 문제

movie_name: "The French Kiss" 
languages: "English French" 

는 내가하고 싶은 것은 (관련성에 따라 그들을 분류, 프랑스어와 영어의 언어를 검색 영화 모두 언어가 포함 된 영화 때문에 높은 순위가 매겨 질 것입니다.) 그리고 인기가 있습니다. 나는 스핑크스 보석을 사고 사용하고 있지만, 기본적으로 내 쿼리는 다음과 같습니다

'@languages "French English"', order: "@relevance DESC, popularity DESC" 

이제 문제들이 덜 인기에도 불구하고, 높은 순위 언어뿐만 아니라 영화의 이름을 프랑스어을 가진 영화입니다. 이제는 영화 문서와 영화 이름 및 언어에서 두 가지 "프랑스어"현상이 발생했기 때문에 이러한 현상이 발생합니다.

순위 알고리즘을 bm25 (키워드 발생을 고려하지 않음)로 변경하려고 시도했지만 여전히 동일한 결과를 반환합니다.

인기도에 따라 정렬 된 다음 프랑스어와 영어만으로 정렬 된 영화를 "프랑스어와 영어"둘 다 일치하는 영화를 반환하도록 쿼리를 어떻게 변경합니까? 어떤 도움을 주시면 감사하겠습니다. 감사!

답변

0

언어 이름을 사용하는 대신 문자열로 색인 된 언어 ID를 사용합니다. 따라서 예를 들어, "영어 프랑스어"는 "10000001 10000002"가되며 여기서 10000001은 영어의 ID이고 10000002는 프랑스어의 ID입니다.

더 좋은 해결책이 있다면 누구나 좋아할 것입니다.

0

스핑크스 순위의 미세한 점을 이해하는 사람은 더 많은 것을 도울 수 있지만 시도해 볼만한 가치가있는 한 가지는 그 분야의 필드 가중치를 가지고 있으며 언어 또는 영화 이름이 명확하게 더 높은 순위를 갖게합니까? 그게 당신이 정확히 무엇을 얻었는지 확실하지 않은 경우.