전문 검색은 쿼리 확장(특히 '블라인드 쿼리 확장'이라는 변형)을 지원합니다. 이는 검색 문구가 너무 짧을 때 일반적으로 유용한데, 이는 사용자가 전문 검색 엔진이 갖고 있지 않은 암묵적 지식에 의존하고 있다는 것을 의미합니다. 예를 들어, 사용자가 "database"를 검색할 때 실제로는 "MySQL", "Oracle", "DB2", "RDBMS" 등이 모두 "databases"와 일치하는 구문으로 반환되어야 한다는 의미일 수 있습니다. 이것이 바로 암묵적 지식입니다.
블라인드 쿼리 확장(자동 연관성 피드백이라고도 함)은 검색 구문 뒤에 WITH QUERY EXPANSION 또는 IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION을 추가하여 활성화됩니다. 이는 검색을 두 번 수행하는 방식으로 작동하는데, 두 번째 검색의 검색 구문은 원래 검색 구문에 첫 번째 검색에서 가장 연관성이 높은 문서 몇 개를 연결한 것입니다. 따라서 이러한 문서 중 하나에 "databases"와 "MySQL"이라는 단어가 포함되어 있다면, 두 번째 검색은 "database"라는 단어가 포함되어 있지 않더라도 "MySQL"이라는 단어가 포함된 문서를 찾습니다. 다음 예시는 이러한 차이를 보여줍니다
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' IN NATURAL LANGUAGE MODE);
+----+-------------------+------------------------------------------+
| id | title | body |
+----+-------------------+------------------------------------------+
| 1 | MySQL Tutorial | DBMS stands for DataBase ... |
| 5 | MySQL vs. YourSQL | In the following database comparison ... |
+----+-------------------+------------------------------------------+
2 rows in set (0.00 sec)
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' WITH QUERY EXPANSION);
+----+-----------------------+------------------------------------------+
| id | title | body |
+----+-----------------------+------------------------------------------+
| 5 | MySQL vs. YourSQL | In the following database comparison ... |
| 1 | MySQL Tutorial | DBMS stands for DataBase ... |
| 3 | Optimizing MySQL | In this tutorial we show ... |
| 6 | MySQL Security | When configured properly, MySQL ... |
| 2 | How To Use MySQL Well | After you went through a ... |
| 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... |
+----+-----------------------+------------------------------------------+
6 rows in set (0.00 sec)
다음은 사용자들이 "Maigret"의 철자를 정확히 모를 때, 조르주 심농(Georges Simenon)의 마이그레(Maigret) 관련 책을 검색하는 사례입니다.
예를 들어, 사용자가 "Megre and the reluctant witnesses"라고 검색하면 쿼리 확장이 없이 검색된 결과는 "Maigret and the Reluctant Witnesses"만 찾을 수 있습니다. 하지만 쿼리 확장을 사용한 검색에서는 두 번째 시도에서 "Maigret"이라는 단어를 포함한 모든 책을 찾아낼 수 있습니다.
🧑🏻💻Note
맹목적인 쿼리 확장은 비관련 문서들을 반환함으로써 잡음(noise)을 크게 증가시키는 경향이 있기 때문에, 검색 구문이 짧은 경우에만 사용하는 것이 좋습니다.