elasticsearch - 역렬 인덱스 원리
2895 단어 elasticsearch
인덱스
Elasticsearch는 빠른 전체 텍스트 검색에 사용할 수 있는 역렬 인덱스 구조를 사용합니다.역렬 인덱스는 문서에 중복되지 않는 모든 단어의 목록으로 구성되며, 그 중 모든 단어에 대한 문서 목록이 있습니다.
예를 들어, 두 개의 문서가 있다고 가정하면 각 문서의
content
도메인은 다음과 같습니다.역렬 인덱스를 만들기 위해서, 우리는 먼저 각 문서의
content
영역을 단독 단어로 나누고, 중복되지 않는 모든 단어를 포함하는 정렬 목록을 만들고, 각 단어가 어떤 문서에 나타나는지 열거합니다.결과는 다음과 같습니다.Term Doc_1 Doc_2
-------------------------
Quick | | X
The | X |
brown | X | X
dog | X |
dogs | | X
fox | X |
foxes | | X
in | | X
jumped | X |
lazy | X | X
leap | | X
over | X | X
quick | X |
summer | | X
the | X |
------------------------
현재
을 검색하려면 각 단어를 포함하는 문서를 찾아야 합니다.Term Doc_1 Doc_2
-------------------------
brown | X | X
quick | X |
------------------------
Total | 2 | 1
두 문서 모두 일치하지만 첫 번째 문서가 두 번째 문서보다 더 높습니다.만약 우리가 일치하는 단어의 수량만 계산하는 간단한 유사성 알고리즘을 사용한다면, 우리는 우리가 조회하는 관련성에 있어서 첫 번째 문서가 두 번째 문서보다 더 좋다고 말할 수 있다.
그러나 현재 역렬 인덱스에 문제가 있습니다.
tokens
과 quick brown
은 독립된 단어로 나타나지만 사용자들은 같은 단어라고 생각할 수 있다.Quick
과 quick
은 매우 비슷하다. 마치 fox
과 foxes
과 같다.그들은 같은 어근을 가지고 있다.dog
과 dogs
은 같은 어근이 없지만 그들의 뜻은 비슷하다.그들은 동의어이다.앞의 인덱스를 사용하여
jumped
을 검색해도 일치하는 문서가 없습니다.(기억해라, leap
접두사는 이 단어가 반드시 존재해야 한다는 것을 나타낸다.)+Quick +fox
과 +
의 문서가 동시에 나타나야만 이 조회 조건을 만족시킬 수 있지만, 첫 번째 문서는 Quick
, 두 번째 문서는 fox
을 포함한다.우리의 사용자는 두 문서가 조회와 일치하기를 합리적으로 기대할 수 있다.우리는 더 잘할 수 있다.
만약 우리가 단어를 표준 모델로 규범화한다면, 우리는 사용자가 검색한 단어와 완전히 일치하지 않지만, 충분한 관련성을 가진 문서를 찾을 수 있다.예:
quick fox
은 Quick foxes
으로 소문자화할 수 있다.Quick
은 어간 추출이 가능하며 어근으로 변하는 형식은 quick
입니다.이와 유사하게 foxes
은 fox
으로 추출할 수 있다.dogs
과 dog
은 동의어로 같은 단어 jumped
으로 색인할 수 있습니다.현재 색인은 다음과 같이 보입니다.
Term Doc_1 Doc_2
-------------------------
brown | X | X
dog | X | X
fox | X | X
in | | X
jump | X | X
lazy | X | X
over | X | X
quick | X | X
summer | | X
the | X | X
------------------------
이것은 아직 턱없이 부족하다.우리가 검색한
leap
은 여전히 실패할 것이다. 왜냐하면 우리의 색인에는 이미 jump
이 없기 때문이다.그러나 만약에 우리가 검색한 문자열에 +Quick +fox
역과 같은 표준화 규칙을 사용한다면 Quick
을 조회하면 두 문서가 일치합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.