근접연산과 ADJ 연산
숙어와 구문 등 여러 단어의 조합으로 검색을 할 경우 그것에 포함된 단어의 근접성이나 출현하는 순서가 중요한 의미를 가질 수 있습니다. 현재 검색 엔진은 근접성과 출현 순서는 자동으로 가중 평가가 되지만 검색자가 그들을 중시하는 쿼리를 별도로 보낼 수 있습니다.
단어의 근접성과 어순을 중시하는 연산
검색 폼에 입력된 키워드는 단순한 단어의 나열이 아니라 의미를 가진 어순으로 기술되는 경우가 있습니다. 특히 숙어와 구문에 의한 검색의 경우 그 어순은 중요한 의미를 가지고 있습니다. 개별 키워드와 일치하는 단어가 사용자의 요구와 같은 순서 · 가까운 거리에 배치되는 문장은 각각에 대해 사용자의 의도와 같은 관계성을 가지고 쓰여져 있을 가능성이 높습니다. 이러한 검색 키워드의 근접이나 어순을 지정하는 쿼리로 근접 연산과 ADJ 연산이 있습니다.
입력 문구대로의 어순과 거리를 중시하는 근접 연산
근접 연산은 여러 키워드를 검색 할 때, 문장 중 단어의 순서가 동일하고 일정한 거리 내에 있는 문서를 잘라내는 알고리즘입니다. 예를 들어 [정보 검색] 혹은 [정보 + 검색]이라는 단어로 검색했을 때 [정보]와 [검색]이 모두 존재하고, [정보] [검색]이라고 하는 순서로 배치되어, 본문 중에 어느 일정한 거리 내에 기술되어 있는 문서를 검색합니다.
정보 NEAR 검색
위의 검색에서 [정보검색]과 [정보의 검색]과 [정보를 검색]등의 검색 결과를 반환합니다. 또한 데이터베이스에 따라서는 [NEAR / 허용 범위]라고 하는 형태의 연산자를 검색식에 이용하여 각 단어의 간격 (사이에 포함 된 단어 수)를 지정하고 그 간격을 지키고 순서가 갖춰진 검색을 할 수도 있습니다. 웹 검색 엔진에서는 NEAR 연산자를 이용한 근접 연산은 시들어 버렸습니다. 현재 주요 웹 검색 엔진에서 NEAR 연산자에 대응하고 있는 것은 없습니다.
입력 문구대로 검색을 하는 ADJ 연산
ADJ 연산은 복수 단어를 검색 할 때, 문장 중 단어 나열된 순서가 같고 연속적인 문서를 잘라내는 알고리즘입니다. 예를 들어, [정보검색] 또는 [정보] [검색]이라는 두 단어로 검색을 실시했을 때에 [정보]와 [검색]이 모두 존재하며, 그리고 그 두 가지가 본문 중에서 [정보] [검색] 이라는 순서로 이어져 기술되어 있는 문서를 검색합니다. 데이터베이스는 [ADJ + 문자 간격] 라고 하는 형태의 연산자를 검색식에 이용는 것으로, 각 단어의 간격을 지정하고 그 문자 간격을 지켜 기재하고 있는 정보의 검색을 행하는 것도 있습니다. 그러나 현재의 검색 엔진은 구문 검색을 이용하는 것으로 ADJ 연산을 대체 할 수 있게 되어 ADJ 연산은 이용되지 않게 되었습니다.
현재 웹 검색의 근접 연산과 ADJ 연산의 구현
검색 엔진에서 여러 단어의 AND 검색과 숙어, 구문 등을 사용한 검색을 하면 숙어와 구문 자체와 단어의 순서 가까운 문장을 포함한 웹페이지가 상위의 결과로 되돌아옵니다. 또한 여러 키워드로 검색 할 때 단어의 순서를 바꿔 검색하면 검색 결과가 크게 변화합니다. 이러한 점을 보면 검색엔진의 내부에서 근접 연산 알고리즘을 이용한 쿼리 처리를 하고 있는 것이 틀림없습니다.
Google에서 [정보검색]으로 검색
Google에서 [검색정보]라고 검색
Google에서 [정보 + 검색]으로 검색
Google에서 [검색 + 정보]라고 검색
위의 각각의 검색은 모든 다른 결과가 나옵니다. 근접도과 어순을 가미하고 각각에 대한 최적의 결과를 자동으로 돌려주려는 사양으로 되어 있는 것입니다.