몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

MongoDB 전체 텍스트 검색


전체 텍스트 검색은 각 단어에 대한 색인을 생성하여 기사에 있는 단어의 수와 위치를 나타냅니다. 사용자가 쿼리하면 검색 프로그램은 미리 설정된 색인을 기반으로 검색하고 결과를 보여줍니다. 검색 결과는 사용자의 검색 방법으로 피드백됩니다.

이 과정은 사전의 검색어 목록을 통해 단어를 찾는 과정과 유사합니다.

MongoDB는 버전 2.4부터 전체 텍스트 검색을 지원하며, 현재 15개 언어로 전체 텍스트 인덱싱을 지원합니다(중국어는 당분간 지원되지 않습니다).

  • danish

  • dutch

  • english

  • finnish

  • french

  • @

    german

  • 헝가리어

  • italian

  • norwegian

  • 포르투갈어

  • romanian

  • russian

  • spanish

  • swedish

  • turkish


전체 텍스트 검색 활성화

MongoDB는 2.6 버전 이후 기본적으로 전체 텍스트 검색을 활성화합니다. 이전 버전을 사용하는 경우 전체 텍스트 검색을 활성화하려면 다음 코드를 사용해야 합니다. -텍스트 검색:

>db.adminCommand({setParameter:true,textSearchEnabled:true})

또는 명령 사용:

mongod --setParameter textSearchEnabled=true

@

전체 텍스트 색인 만들기

기사를 포함하여 다음 게시물 컬렉션의 문서 데이터를 고려합니다. 콘텐츠(post_text) 및 태그(tags):

{
   "post_text": "enjoy the mongodb articles on w3cschool.cc",
   "tags": [
      "mongodb",
      "w3cschool"
   ]
}

글 내 콘텐츠를 검색할 수 있도록 post_text 필드에 전체 텍스트 색인을 생성할 수 있습니다:

>db.posts.ensureIndex({post_text:"text"})

전체 텍스트 색인

사용 이제 post_text 필드에 전체 텍스트 색인이 생성되었습니다. 전체 텍스트 색인, 기사에서 w3cschool.cc 키워드를 검색할 수 있습니다:

>db.posts.find({$text:{$search:"w3cschool.cc"}})

다음 명령은 w3cschool.cc 키워드가 포함된 다음 문서 데이터를 반환합니다.

{ 
   "_id" : ObjectId("53493d14d852429c10000002"), 
   "post_text" : "enjoy the mongodb articles on w3cschool.cc", 
   "tags" : [ "mongodb", "w3cschool" ]
}
{
   "_id" : ObjectId("53493d1fd852429c10000003"), 
   "post_text" : "writing tutorials on w3cschool.cc",
   "tags" : [ "mongodb", "tutorial" ] 
}

이전 버전의 MongoDB를 사용하는 경우 다음 명령을 사용할 수 있습니다.

>db.posts.runCommand("text",{search:" w3cschool.cc"})

전체 텍스트 인덱스 사용 검색 효율성을 높일 수 있습니다.


전체 텍스트 색인 삭제

기존 전체 텍스트 색인 삭제 find 명령을 사용하여 색인 이름을 찾을 수 있습니다.

>db.posts.getIndexes()

가져오기 위 명령을 통해 인덱스 이름을 지정합니다. 이 예에서 인덱스 이름은 post_text_text입니다. 인덱스를 삭제하려면

>db.posts.dropIndex("post_text_text")
명령을 실행합니다.

PHP 중국어 웹사이트