전체 텍스트 검색
Full-text search텍스트 검색에서 전체 텍스트 검색은 단일 컴퓨터에 저장된 문서 또는 전체 텍스트 데이터베이스에 있는 집합을 검색하는 기술을 말합니다.전체 텍스트 검색은 메타데이터를 기반으로 하거나 데이터베이스에 표시되는 원본 텍스트의 일부(예: 제목, 요약, 선택한 섹션 또는 서지 참조)를 기준으로 하는 검색과 구분됩니다.
전체 텍스트 검색에서 검색 엔진은 검색 기준(예: 사용자가 지정한 텍스트)과 일치하려고 시도할 때 저장된 모든 문서의 모든 단어를 검사합니다.전체 텍스트 검색 기술은 1990년대에 [verification needed]온라인 서지 데이터베이스에서 보편화되었습니다.많은 웹 사이트 및 응용 프로그램(워드 프로세싱 소프트웨어 등)은 전체 텍스트 검색 기능을 제공합니다.AltaVista와 같은 일부 웹 검색 엔진은 전체 텍스트 검색 기술을 사용하는 반면, 다른 웹 엔진은 인덱싱 [1]시스템에서 검사한 웹 페이지의 일부만 인덱싱합니다.
색인화
적은 수의 문서를 처리할 때 전체 텍스트 검색 엔진이 각 쿼리로 문서 내용을 직접 스캔할 수 있으며, 이를 "시리얼 스캔"이라고 합니다.이것은 검색 시 GREP와 같은 일부 도구가 수행하는 작업입니다.
그러나 검색할 문서 수가 많거나 수행할 검색 질의의 양이 많은 경우 전체 텍스트 검색 문제는 색인 작성과 검색의 두 가지 태스크로 구분되는 경우가 많습니다.색인화 단계는 모든 문서의 텍스트를 스캔하고 검색어 목록을 작성합니다(일반적으로 색인이라고 하지만 더 정확하게 일치된 이름으로 지정됨).검색 단계에서는 특정 조회를 수행할 때 원본 문서의 [2]텍스트가 아닌 색인만 참조됩니다.
인덱서는 문서에서 발견된 각 용어 또는 단어에 대해 인덱스에 항목을 작성하고 문서 내의 상대적인 위치를 기록합니다.일반적으로 인덱서는 "the" 및 "and"와 같은 일반적이고 의미가 부족하여 검색에 유용한 중지 단어를 무시합니다.일부 인덱서는 색인화된 단어에 특정 언어 어원을 사용하기도 한다.예를 들어, "드라이브", "드롭", "드라이브"라는 단어는 인덱스에 "드라이브"라는 단일 개념 단어 아래에 기록됩니다.
정밀도 대 리콜의 트레이드오프
리콜은 검색에 의해 반환된 관련 결과의 양을 측정하는 반면 정밀도는 반환된 결과의 품질을 측정하는 것입니다.리콜은 모든 관련 결과에 대해 반환되는 관련 결과의 비율입니다.Precision은 반환된 총 결과 수로 반환된 관련 결과 수입니다.
오른쪽 다이어그램은 저정밀, 저호출 검색을 나타냅니다.다이어그램에서 빨간색과 녹색 점은 특정 검색에 대한 잠재적 검색 결과의 총 모집단을 나타냅니다.빨간색 점은 관련 없는 결과를 나타내며 녹색 점은 관련 결과를 나타냅니다.연관성은 검색 결과가 내부 원의 중심에 근접한 것으로 나타납니다.표시된 모든 가능한 결과 중 실제로 검색에서 반환된 결과는 밝은 파란색 배경에 표시됩니다.이 예에서는 3개의 가능한 관련 결과에 대해 1개의 관련 결과만 반환되었으므로 리콜 비율은 1/3 또는 33%로 매우 낮습니다.반환된 4개의 결과 중 [3]1개만 관련되었기 때문에 이 예제의 정밀도는 1/4 또는 25%로 매우 낮습니다.
자연어의 모호성으로 인해 전체 텍스트 검색 시스템에는 일반적으로 정밀도를 높이기 위한 정지 단어 및 기억력을 높이기 위한 정지 단어와 같은 옵션이 포함되어 있습니다.또한 제어된 어휘 검색은 애매한 부분이 제거되도록 문서에 태그를 지정함으로써 정밀도가 낮은 문제를 완화하는 데 도움이 됩니다.정밀도와 리콜의 균형은 간단합니다. 정밀도가 증가하면 전체 리콜이 감소하지만 리콜이 증가하면 [4]정밀도가 저하됩니다.
오양성 문제
전체 텍스트 검색은 의도된 검색 질문과 관련이 없는 많은 문서를 검색할 수 있습니다.이러한 문서를 false positive라고 부릅니다(Type I 오류 참조).관련 없는 문서의 검색은 종종 자연 언어의 고유한 모호성에 의해 발생합니다.오른쪽 예제 다이어그램에서는 잘못된 긍정이 검색에서 반환된 관련 없는 결과(빨간색 점)로 표시됩니다(연청색 배경).
베이지안 알고리즘에 기반한 클러스터링 기술은 잘못된 긍정을 줄이는 데 도움이 됩니다."은행" 검색어의 경우, 클러스터링을 사용하여 문서/데이터 세계를 "금융 기관", "앉을 곳", "저장할 곳" 등으로 분류할 수 있습니다.카테고리에 관련된 단어의 발생에 따라 검색어 또는 검색 결과를 하나 이상의 카테고리에 배치할 수 있습니다.이 기술은 e-discovery [clarification needed]도메인에 광범위하게 도입되고 있습니다.
퍼포먼스 향상
전문 검색의 결점은 다음 두 가지 방법으로 해결되었습니다.사용자에게 검색 질문을 보다 정확하게 표현할 수 있는 도구를 제공하고 검색 정밀도를 향상시키는 새로운 검색 알고리즘을 개발합니다.
향상된 쿼리 도구
- 키워드문서 작성자(또는 훈련된 인덱서)는 이 주제를 설명하는 단어의 동의어를 포함하여 텍스트의 주제를 설명하는 단어 목록을 제공해야 합니다.키워드를 사용하면 특히 키워드 목록에 문서 텍스트에 없는 검색어가 포함된 경우 검색 기능이 향상됩니다.
- 필드 제한 검색일부 검색 엔진에서는 "제목" 또는 "작성자"와 같은 저장된 데이터 레코드 내의 특정 필드로 전체 텍스트 검색을 제한할 수 있습니다.
- 부울 쿼리부울 연산자를 사용하는 검색(예:"Encarta"가 아닌 "Enclopedia"와 "Online"은 전체 텍스트 검색의 정확도를 크게 높일 수 있습니다.AND 연산자는 실제로 "이 두 용어를 모두 포함하지 않는 한 문서를 검색하지 마십시오."라고 말합니다.NOT 연산자는 실제로 "이 단어가 포함된 문서를 검색하지 마십시오."라고 말합니다.검색 목록이 너무 적은 수의 문서를 검색하는 경우, OR 연산자를 사용하여 리콜을 늘릴 수 있습니다. 예를 들어 "백과사전"과 "온라인" 또는 "엔카르타"가 아닌 "인터넷"을 고려해 보십시오.이 검색에서는 "온라인" 대신 "인터넷"이라는 용어를 사용하는 온라인 백과사전에 대한 문서를 검색합니다.이러한 정밀도의 증가는 대개 [5]리콜의 극적인 손실을 수반하기 때문에 매우 일반적으로 역효과를 일으킨다.
- 구문 검색.구문 검색은 "Wikipedia, 무료 백과사전"과 같이 지정된 문구를 포함하는 문서만 일치시킵니다.
- 컨셉 검색복합 용어 처리와 같은 다중 단어 개념을 기반으로 하는 검색입니다.이러한 유형의 검색은 많은 전자 정보 검색 솔루션에서 널리 사용되고 있습니다.
- 일치 검색.일치 검색은 텍스트에서 발생하는 모든 주요 단어와 해당 문맥의 알파벳 순으로 목록을 생성합니다.
- 근접 검색구문 검색은 지정된 수의 단어로 구분된 두 개 이상의 단어가 포함된 문서만 일치합니다. "Wikipedia" WITHINE2 "free"를 검색하면 "Wikipedia"와 "free"가 서로 두 단어 내에서 나타나는 문서만 검색합니다.
- 정규 표현.정규 표현식에서는 검색 조건을 정확하게 지정하는 데 사용할 수 있는 복잡하지만 강력한 쿼리 구문을 사용합니다.
- 퍼지 검색은 지정된 용어와 그 주변의 일부 변동과 일치하는 문서를 검색합니다(예를 들어 편집 거리를 사용하여 여러 변동을 임계값으로 함).
- 와일드카드 검색검색 쿼리에서 별표와 같은 와일드카드 문자를 하나 이상 대체하는 검색입니다.예를 들어 검색 쿼리 "s*n"에서 별표를 사용하면 텍스트에서 "sin", "son", "sun" 등이 검색됩니다.
향상된 검색 알고리즘
구글이 개발한 페이지랭크 알고리즘은 다른 웹페이지가 [6]링크된 문서에 더욱 두드러집니다.자세한 예는 검색 엔진을 참조하십시오.
소프트웨어
다음은 전체 텍스트 인덱싱 및 검색을 주로 수행하는 사용 가능한 소프트웨어 제품의 일부 목록입니다.이들 중 일부는 운영 이론 또는 내부 알고리즘에 대한 자세한 설명을 동반하며, 전체 텍스트 검색이 어떻게 수행될 수 있는지에 대한 추가적인 통찰력을 제공할 수 있습니다.
자유 오픈 소스 소프트웨어
독자적인 소프트웨어
레퍼런스
- ^ 실제로 특정 검색 엔진이 어떻게 작동하는지 확인하는 것은 어려울 수 있습니다.웹 검색 서비스에 실제로 채용된 검색 알고리즘은 웹 사업가들이 검색 엔진 최적화 기술을 사용하여 검색 목록에서 두각을 나타낼 것을 우려하여 완전히 공개되는 경우가 거의 없습니다.
- ^ "Capabilities of Full Text Search System". Archived from the original on December 23, 2010.
- ^ Coles, Michael (2008). Pro Full-Text Search in SQL Server 2008 (Version 1 ed.). Apress Publishing Company. ISBN 978-1-4302-1594-3.
- ^ B., Yuwono; Lee, D. L. (1996). Search and ranking algorithms for locating resources on the World Wide Web. 12th International Conference on Data Engineering (ICDE'96). p. 164.
- ^ 연구에 따르면 대부분의 사용자는 부울 쿼리의 부정적인 영향을 이해하지 못하고 있습니다.[1]
- ^ US 6285999, Page, Lawrence, 1998-01-09 발행, 2001-09-04 "링크된 데이터베이스의 노드 랭킹 방법" 인용문을 포함한 문서의 데이터베이스, 월드 와이드 웹 또는 기타 하이퍼미디어 데이터베이스 등 링크된 데이터베이스 내의 노드에 중요도 순위를 할당하는 방법입니다.문서에 할당된 순위는 문서를 인용하는 문서의 순위에서 계산됩니다.또한 문서의 순위는 다음과 같습니다.."
- ^ "SAP Adds HANA-Based Software Packages to IoT Portfolio MarTech Advisor". www.martechadvisor.com.
「 」를 참조해 주세요.
- 패턴 매칭 및 문자열 매칭
- 복합항 처리
- 엔터프라이즈 검색
- 정보 추출
- 정보 검색
- 패싯 검색
- 엔터프라이즈 검색 벤더 목록
- WebCrawler, 첫 번째 FTS 엔진
- 검색 엔진 색인 - 검색 엔진이 전체 텍스트 검색을 지원하는 색인을 생성하는 방법