好的,所以我很困惑這種行爲。看起來不一致和奇怪,尤其是因爲我讀過Mongo不應該支持全文搜索中的部分搜索術語。我正在使用Mongo DB社區服務器3.4.7版。我正在從Mongo shell進行這些測試。
因此,我有一個分配了文本索引的Mongo DB集合。我創建這樣的指標:
db.submissions.createIndex({"$**":"text"})
有了這個集合,其中包含這兩個值中的文件:
「克雷格」
「鮑勃博士」。
我的目標是對其中有多個匹配項的文檔進行文本搜索。
所以,這裏是我所運行的測試,和他們不一致的輸出:
單個術語,完整
db.submissions.find({"$text":{"$search":"\"Craig\""}})
結果:讓我與它該值的文檔。
單個術語,部分
db.submissions.find({"$text":{"$search":"\"Crai\""}})
結果:返回沒什麼,因爲這部分搜索術語不完全匹配文檔中任何事情。
多重條件,完善的
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}})
結果:返回與無論是在它這些條款的文件。
多個術語,一個部分
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
結果:返回一個與它兩方面的文件,儘管事實上,一個任期是局部的。沒有什麼符合「博醫生」
多個詞的文檔中,兩個分
db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})
結果:返回一個與它兩方面的文件,儘管這兩個詞是部分並且不完整。文件中沒有任何內容與「Crai」或「Bo博士」相匹配。
問題
所以,這一切都歸結爲:爲什麼呢?爲什麼呢,當我用一個只有一個值的部分詞進行文本搜索時,沒有任何東西會被返回。當我用兩個部分詞語進行文本搜索時,我會得到匹配結果?它看起來很奇怪而且不一致。
謝謝。
我面臨同樣的問題,[檢查這裏](https://stackoverflow.com/questions/46288384/text-indexes-mongodb-minimum-length-of-search-string) –