2014-07-08 3 views
0

는 내 특정 요구 사항을 찾을 수 없어.MySQL의 FULLTEXT 검색 관련성 조정

는 여기에 다음과 같은 제목으로 데이터베이스에 일부 제품을 내 예를

입니다. 그리고 이것은 내가에 표시를하고자하는 순서가 "버섯 파이"

1.mushroom 파이 2.Mushroom 파이 3.Pie 버섯 4.Mushroom 수프 5.Pork 파이에 대한 사용자 검색 6. 버섯 & 야생 버섯 스프

내 제품 데이터베이스의 "제목"필드에 전체 텍스트를 추가했습니다 ...하지만 불행히도 내가하고 싶은 것은하지 않습니다.

SELECT products.title ,products.normalisedCode 
FROM products 
WHERE MATCH (title) AGAINST ('+mushroom +pie') 

이 내 결과의 상단에있는 "버섯 & 야생 버섯 수프"를두고 ... 나는 "버섯"제목에 두 번 나타나기 때문에이 상상.

또한 나는이 완전히 정렬을 망쳐 놨

SET CHARACTER SET utf8; 
SELECT products.title ,products.normalisedCode 
FROM products 
WHERE MATCH (title) AGAINST ('+mushroom +pie') 
OR products.normalisedCode LIKE CONCAT('%', normaliseNumString('mushroom'), '%') 

... 난 부울 매치 모드를 사용하여 시도했다 문 "와 같은"다른에 추가 할 때 ...하지만 이것은 단지 키 두 제품을 찾아온다 제목에있는 단어 ... 제목에 단어가있는 제품을 다시 가져 오지 만 두 단어가있는 단어가 올바른 순서로 결과에 표시되도록해야합니다.

희망적입니다.

감사합니다.

답변

0

보십시오이 하나

SELECT (MATCH(title) AGAINST ('mushroom Pie')) as Relevance, 
products.title ,products.normalisedCode 

FROM products 
WHERE MATCH (title) AGAINST ('+mushroom +Pie') 

ORDER BY Relevance DESC