토큰화 및 비토큰화 필드

검색 필드의 토큰화 문제에 대해서는 이미 간단히 다루었습니다. 토큰화하려면 필수적으로 색인화된 데이터를 토큰이라는 단위로 분할해야 합니다. 이 작업은 분석기를 사용하여 수행됩니다. 일부는 토큰을 공백에서 구분하고 일부는 구두점에서 분할하는 등, 다른 분석기는 다르게 동작합니다. 또한 결과 토큰은 일반적으로 소문자로 변환됩니다. 토큰화된 필드의 경우 조회 문자열도 동일한 방식으로 토큰화되므로 검색은 대소문자를 구분하지 않는다는 장점도 있습니다.

토큰화가 의미가 없는 필드도 있습니다. 컴퓨터가 생성하는 값(예: 코드 테이블 코드)이 좋은 예입니다. 그러나 일반적으로 대부분의 필드를 토큰화해야 합니다. 특히 여러 단어로 된 비토큰화 필드 및 검색의 동작은 논리적이지 않습니다. 검색이 예상한 데이터를 리턴하지 않는다는 사실을 알았다면 이 경우에 해당하는지 여부를 고려하십시오.

예제: "Joyce Way Parkwest Dublin"이라는 문서가 있는 주소 필드를 받습니다. 이 필드가 표준 분석기를 사용하여 토큰화되면 색인에는 joyce, way, parkwest, dublin의 네 개 용어가 포함됩니다. 이러한 용어와 일치(정확하게 또는 와일드 카드를 통해)하는 용어를 포함하는 모든 조회 문자열은 이 문서를 찾습니다. 예: "Dublin", "Joyce Way", "park*" 등.

그러나 이 필드가 토큰화되지 않은 경우 동일한 문서가 추가되면 색인에는 "Joyce Way Parkwest Dublin"이라는 단일 용어만 포함됩니다. 이와 일치하는 조회 문자열은 훨씬 적습니다(기본적으로 문자열 자체 또는 문자열의 첫 부분만 접두부 검색으로). 이 검색은 또한 대소문자를 구분합니다.