2013-07-25 52 views
0

我遇到了與mongodb fts。 我想搜索Haskell類型的部分。所以我有一個字段看起來,例如,像這樣:mongodb全文搜索:帶特殊字符的短語「 - 」

type : "[a] -> [b] -> [(a,b)]" 

我可以搜索「[1]」「[B]」「[(A, b)]「我會得到正確的文件,其中包含上述字段。但如果我嘗試搜索「[a] - > [b]」,我什麼也得不到。

> db.mycollection.runCommand("text",{search : "\"[a] -> [b]\""}) 
{ 
"queryDebugString" : "a||||||[a] -> [b]", 
"language" : "none", 
"results" : [ ], 
"stats" : { 
    "nscanned" : 1, 
    "nscannedObjects" : 0, 
    "n" : 0, 
    "nfound" : 0, 
    "timeMicros" : 185 
}, 
"ok" : 1 
} 

首先,我想我應該逃避特殊字符在我的查詢,但它沒有什麼區別和queryDebugString八方通看起來是一樣的。

如果我不使用方向和我的條目看起來像這樣,

type : [a] > [b] > [(a,b)] 

一切都很好。我可以搜索「[1]」「[B]」「[(A,B)]」「[1]> [B]」,我會百達得到正確的文件。

那麼我需要什麼樣的搜索錯誤? 這是一個我不明白的錯誤或概念嗎?

感謝

回答

0

-意味着它是一個否定的搜索,但不應該在短語搜索發生(由封閉「)。我想建議你在http://jira.mongodb.org發送錯誤報告,因爲這似乎是一個錯誤。