테이블 구조는 :PHP MySQL의 검색 전체 텍스트
Companies: id, name, city, branch, keywords, country
키워드 필드는 지금 단지 'musicfactory 런던을'리턴 '% 음악 런던 %'예를 들어 와일드 카드와 함께 LIKE를 사용, 함께 이름 도시와 분기를 포함
그러나 예를 들어 사용자가 London (레스토랑)의 Vini & Magraine을 검색하려고하는데 입력이 'vini londen'인 경우 사용자가 'magraine london'을 삽입하면 정확하지 않습니다. 발견 될 것이다.
그래서 문제는 prob 키워드가 순서입니다, 지금 전 텍스트 검색으로 변환 할 계획입니다, 키워드 필드에 색인을 만들었습니다 또한 키워드 필드 스마트 아이디어입니까? 올바른 결과를 반환하지 않습니다 그러나
SELECT id, name, branch FROM companies WHERE MATCH(keywords) AGAINST(? IN BOOLEAN MODE) AND country = ? LIMIT 7
:
내 주요 질문은 내가이 쿼리와 전체 텍스트 검색을 창조인가? 최선의 해결책은 무엇입니까?
읽어 주셔서 감사합니다.
여기서 한 말을 다시 확인할 수 있습니까? 데이터베이스가 innoDB입니까? 일치하는 경우에 당신과 당신을 위해 작동하지 않습니다 당신은 해결 방법을 고려해야합니다. 확인할 수 있습니까? 그 외에, 자신이 정의한 일련의 연산자를 기반으로 쿼리 문자열을 작성할 수 있습니다. regex를 사용하면 예를 들어 따옴표, 쉼표 등 검색 용어의 특정 항목을 쉽게 식별 할 수 있습니다. 그런 다음이를 사용하여 용어와 일치하는 항목을 수정하는 데 필요한 (+, - 등)를 결정할 수 있습니다. –