php와 mySQL을 사용하여 온라인 FAQ 유형 시스템을 만들고 있습니다. 다음 SQL은 사용자가 $term
으로 입력 한 내용에 따라 관련 질문을 찾는 데 사용됩니다.mySQL fulltext learning
사용자가 무언가를 검색하고 관련 질문을 클릭하면 대답을 표시 할 때 검색 한 내용에 따라 질문의 점수를 매길 수 있습니다.
SQL의 첫 번째 부분은 실제 질문 테이블에서 관련 질문 ID를 가져옵니다. 두 번째 부분에서는 등급 테이블을보고 관련 질문 ID를 찾기 위해 사람들이 이전에 검색 한 내용과 일치 시키려고합니다.
그런 다음이 결과의 합집합을 사용하여 데이터베이스에 저장된 실제 질문 제목을 얻습니다.
(SELECT id_question,
MATCH(question, tags) AGAINST ('%$term%') as rank
FROM question
WHERE MATCH(question, tags) AGAINST ('%$term%')
AND category = '$category')
UNION
(SELECT id_question,
MATCH(customer_search_query) AGAINST ('%$term%') as rank
FROM rating
WHERE MATCH(customer_search_query) AGAINST ('%$term%')
AND (customer_rating = 1))
ORDER BY rank DESC LIMIT 5;");
문제는 시스템이 실제로 올바르게 학습하지 못하는 것입니다. 예를 들어, "three users"를 입력하면 시스템은 질문 표에서 일치하는 것을 찾습니다.
"3 사용자"를 입력하면 시스템은 "사용자"라는 키워드를 기반로 한 질문 표에서 일치하는 항목을 찾습니다. "예"라는 질문을 클릭하면 "3 명의 사용자"라는 질문과 관련된 등급 테이블에 "3 명의 사용자"가 저장됩니다.
문제는 "3"이 "3 명의 사용자"와 만 관련된다는 것입니다. 이 경우 숫자 3을 단어 "three"의 모든 인스턴스와 연관시키는 방법이 있습니까?
당신이 주어진에 의해 오래된 단어 (3 개)의 모든 인스턴스를 대체하는 것을 의미합니다 단어 (3). 내가 맞지 ?? – diEcho