2016-10-06 3 views
0

프랑스의 CMS (SPIP)에서 전체 텍스트 검색을 사용합니다. 빼기 단어로 검색 한 결과가 올바르지 않습니다.전체 텍스트 검색은 -xxxword를 제외하지 않습니다.

SELECT t.id_zotspip, t.titre, t.resume, 
    MATCH(t.`titre`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE) * 10 
    + MATCH(t.`titre`,t.`resume`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE) * 2.2 AS score 
FROM `spip_zotero311`.spip_zitems AS t 
WHERE ((MATCH(t.`titre`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE)) 
    OR (MATCH(t.`titre`,t.`resume`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE))) 
GROUP BY t.id_zotspip ORDER BY score DESC LIMIT 0,500 

우리는 이력서에 박테리아 결과를 얻을 수 ...

테이블의 유형의 MyISAM하지만베이스의 유형 이노입니다 : 우리는 phpMyAdmin과의 CMS에 의해 생성 된 SQL 요청을 시도했다.

제안 사항?

감사합니다.

+0

왜 GROUP BY t.id_zotspip을 사용합니까? 그것은 틀린 것처럼 보인다. – Evgeny

+0

또한'WHERE' 절 안에서'OR'을'AND'로 대체해야한다고 생각합니다. – Evgeny

+0

감사합니다. OR 절이 WHERE 절의 AND로 바뀌면 결과는 괜찮은 것 같습니다! 이제 우리는 왜 SPIP이 잘못된 요청을 생성하는지 파악해야합니다 ... 귀하의 도움을 다시 한번 감사드립니다! –

답변

0

OR 절의 문제는 where입니다. WHERE 절의 OR 절을 AND으로 대체해야합니다.

+0

이전에 말했던 것처럼 ... 너무 효과가 없습니다 ... 이제 전체 텍스트 검색은 제목에서만 작동합니다. 이력서에만 부식이있는 항목을 찾을 수 없습니다 ... 우리는 여전히 도움이 필요합니다 ... –

관련 문제