elasticsearch 기초 입문(3)

2851 단어
https://www.elastic.co/guide/cn/elasticsearch/guide/cn/inverted-index.html
인덱스
Elasticsearch는 빠른 전체 텍스트 검색에 사용할 수 있는 역렬 인덱스 구조를 사용합니다.역렬 인덱스는 문서에 중복되지 않는 모든 단어의 목록으로 구성되며, 그 중 모든 단어에 대한 문서 목록이 있습니다.
예를 들어, 문서당 content 도메인에 다음과 같은 두 개의 문서가 있다고 가정합니다.
  • The quick brown fox jumped over the lazy dog
  • Quick brown foxes leap over lazy dogs in summer

  • 역렬 인덱스를 만들기 위해서, 우리는 먼저 각 문서의 content 영역을 단독 단어 또는 tokens 로 나누고, 중복되지 않는 모든 단어를 포함하는 정렬 목록을 만들고, 각 단어가 어떤 문서에 나타나는지 열거합니다.결과는 다음과 같습니다.
    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   |
    ------------------------
    

    이제 Quick brown을 검색하려면 각 단어를 포함하는 문서를 찾아야 합니다.
    Term      Doc_1  Doc_2
    -------------------------
    brown   |   X   |  X
    quick   |   X   |
    ------------------------
    Total   |   2   |  1
    

    두 문서 모두 일치하지만 첫 번째 문서가 두 번째 문서보다 더 높습니다.만약 우리가 일치하는 단어의 수량만 계산하는 간단한 유사성 알고리즘을 사용한다면, 우리는 우리가 조회하는 관련성에 있어서 첫 번째 문서가 두 번째 문서보다 더 좋다고 말할 수 있다.
    그러나 현재 역렬 인덱스에 문제가 있습니다.
  • Quickquick는 독립된 단어로 나타나지만 사용자는 같은 단어라고 생각할 수 있다.
  • foxfoxes는 매우 비슷하다. 마치dogdogs.그들은 같은 어근을 가지고 있다.
  • jumpedleap는 같은 어근이 없지만 뜻이 비슷하다.그들은 동의어이다.

  • 앞의 색인 검색 +Quick +fox 을 사용하면 일치하는 문서가 없습니다.(기억해라, + 접두사는 이 단어가 반드시 존재해야 한다는 것을 나타낸다.)Quickfox가 동시에 나타나는 문서만이 이 조회 조건을 만족시킬 수 있지만, 첫 번째 문서는 quick fox, 두 번째 문서는 Quick foxes를 포함한다.
    우리의 사용자는 두 문서가 조회와 일치하기를 합리적으로 기대할 수 있다.우리는 더 잘할 수 있다.
    만약 우리가 단어를 표준 모델로 규범화한다면, 우리는 사용자가 검색한 단어와 완전히 일치하지 않지만, 충분한 관련성을 가진 문서를 찾을 수 있다.예:
  • Quick는 소문자quick로 바꿀 수 있다.
  • foxes는 어간 추출이 가능하며 어근의 형식은 fox 입니다.이와 유사하게dogsdog로 추출할 수 있다.
  • jumpedleap는 동의어로 같은 단어jump로 색인할 수 있다.

  • 현재 색인은 다음과 같이 보입니다.
    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
    

    이것은 아직 턱없이 부족하다.색인에 Quick이 없기 때문에 + Quick + fox를 검색하는 데 실패합니다.단, 검색된 문자열에 대해 콘텐츠 필드와 같은 표준화 규칙을 사용하면 검색 +quick +fox가 되어 두 문서가 일치합니다!
    이것은 매우 중요하다.색인에 나타나는 단어만 검색할 수 있기 때문에 색인 텍스트와 검색 문자열은 같은 형식으로 표준화되어야 합니다.
    분석 및 분석기

    좋은 웹페이지 즐겨찾기