2015-01-09 4 views
0

사용자가 이미지를 업로드하고 설명을 작성하는 웹 사이트를 만들고 있습니다. 사용자가 검색하고자하는 이미지에 대한 설명을 사용자가 검색 할 수있게하고 싶습니다.php mysql 키워드에 대한 설명 검색

처음에는 이미지를 키워드로 업로드하고 이미지에 키워드를 연결하는 동안 사용자가 입력 한 설명을 변환하기로 결정했습니다.이 경우 사용자가 나중에 입력 한 설명에 대한 설명을 검색 할 때 키워드로 변환하고 어떻게 든 DB의 키워드에 대해 모든 전자 검색을 수행 할 키워드에 대해 동의어가 생성됩니다.

최근에 mysql 전체 텍스트 검색에 대해 읽었습니다. 설명 및 이미지 ID가있는 표를 만들고 전체 텍스트 검색 기능을 사용하여 몇 가지 쿼리를 시도했지만 단어 길이 제한 및 불용어로 인해 대부분의 검색 결과가 반환되지 않는 것으로 보입니다.

SELECT * FROM descriptions WHERE MATCH (description) AGAINST ('same' IN BOOLEAN MODE); 

가 '동일'키워드를 포함하는 설명과 함께 테이블에 항목이 있지만 결과가 반환되지 않습니다 : 여기 내 테스트 쿼리입니다.

내 질문은 설명 테이블에서 'LIKE % keywords %'를 사용하거나 설명 테이블에서 FTS를 사용하거나 키워드 테이블 접근 방식을 고수하는 것이 더 낫습니까?

답변

0

좋아요와 함께하면 3 가지 방법이 있습니다. 이 같은 순서로 모든 단어가 포함 된 경우

1) (키워드 : 한 비행기)

SELECT * FROM descriptions WHERE description LIKE('%One airplane%'); 

2) 모든 단어를 포함하지만, 경우 THER 순서가

SELECT * FROM descriptions WHERE description LIKE('%One%') AND description LIKE('% airplane%'); 
를 중요하지 않습니다 지금 당신이 searche 함께 할 어떻게 엄격한 선택할 수있는 단어

SELECT * FROM descriptions WHERE description LIKE('%One%') OR description LIKE('% airplane%'); 

의 일부가 포함 된 경우

3) 에스.

두 번째 또는 세 번째 구현으로 가고 싶다면 "space"로 키워드로 문자열을 분할하고 배열의 각 항목에 대해 같은 것을 추가 할 것입니다.

+0

답장을 보내 주셔서 감사합니다. 당신의 대답은이 경우에 필자의 질문에서 언급 한 FTS 또는 키워드 테이블 접근법보다는 LIKE를 사용하는 것이 더 낫다는 것을 의미합니까? – user1918451

+0

MySQL 전문가가 아닌 경우 어떻게 작동하는지 쉽게 이해할 수 있습니다. FTS는 LIKE보다 더 복잡합니다. 결국 양쪽에서 같은 일을 할 수는 있지만, FTS – bucur89

+0

덕분에 더 많은 시간을 투자하여 FTS가 제공하는 것처럼 순위를 매길 수 있습니까? – user1918451