2017-09-18 2 views
1

좋아, 그래서이 동작에 매우 혼란 스러워요. 일관성없고 이상한 것처럼 보입니다. 특히 Mongo가 전체 텍스트 검색에서 부분 검색 용어를 지원하지 않아야한다는 것을 읽은 이후로 말입니다. Mongo DB Community Server 버전 3.4.7을 사용하고 있습니다. 나는 몽고 껍질에서이 시험을하고있다.

그래서 텍스트 인덱스가 할당 된 Mongo DB 컬렉션이 있습니다. 이 같은 인덱스를 생성 :

"크레이그"

박사는 "밥"이 두 값을 포함하는이 컬렉션의 문서가있다

db.submissions.createIndex({"$**":"text"}) 

.

내 목표는 일치하는 용어가 여러 개인 문서를 텍스트 검색하는 것입니다.

그래서, 여기에 내가 실행 한 시험이다, 그들의 일관성 출력 :

SINGLE TERM,

db.submissions.find({"$text":{"$search":"\"Craig\""}}) 

결과 COMPLETE : 나에게 그것에서이 값을 사용하여 문서를 가져옵니다.

db.submissions.find({"$text":{"$search":"\"Crai\""}}) 

결과 PARTIAL

SINGLE TERM은,이 부분 검색어가 정확하게 문서에서 아무것도 일치하지 않기 때문에, 아무것도 반환합니다.

다중 조건,

db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}}) 

결과 COMPLETE : 그것은 이러한 용어의 모두 문서를 돌려줍니다.

다중 조건,

db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}}) 

결과 ONE PARTIAL는 : 하나 개의 용어 부분이라는 사실에도 불구하고 두 조건에 문서를 돌려줍니다. 이 박사는 "보"

다중 조건에 일치하는 문서의 어떠한 부분

db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}}) 

결과 BOTH는 없다 : 두 용어가 일부 있다는 사실에도 불구하고 두 조건에 문서를 반환 불완전하다. 문서에서 "Crai"또는 "Dr. Bo"와 일치하는 것은 없습니다. 이유 :

질문

그래서, 모두가 아래로 비등? 왜, 하나의 값만 가진 부분 검색어가있는 텍스트 검색을 수행하면 아무 것도 반환되지 않습니다. 부분 검색어가 두 개인 텍스트 검색을 수행 할 때 검색 결과가 나타 납니까? 그것은 단지 너무 이상하고 일관성이없는 것처럼 보입니다.

감사합니다.

+0

나는 똑같은 문제에 직면하고있다. [여기에서 확인] (https://stackoverflow.com/questions/46288384/text-indexes-mongodb-minimum-length-of-search-string) –

답변

관련 문제