2013-10-24 130 views
2

我已經創建了下面的收集和文本索引:索引和搜索數場MongoDB中

db.test1.insert({"name":"kumar goyal","email":'[email protected]',"phoneNo":9742140651}); 
db.test1.ensureIndex({ "$**": "text" },{ name: "TextIndex" }) 

部分搜索工作的姓名和電子郵件領域如

db.test1.runCommand("text",{search:'rakesh'}); 

正常返回的記錄,但它不工作的phoneNo場。

db.test1.runCommand("text",{search:'9742'}); 

不工作。

我猜文本索引不適用於數字字段。無論如何使它在MongoDB中工作?

回答

0

您將電話號碼作爲數字插入,但隨後將其搜索爲字符串。

也許你應該考慮插入電話號碼作爲一個字符串。你不打算在該領域執行任何算術操作嗎?

這樣mongo就能夠對「數字」進行文本搜索(就像你給出的例子),但會把它們當作字符串。

+0

即使插入數據db.test1.insert({「name」:「kumar goyal」,「email」:'[email protected]',「phoneNo」:「9742140651 「}); –

0

Mongo DB全文不支持部分搜索。因此它不起作用,與數字無關。

+0

你爲什麼試圖在電話號碼上進行文本搜索,實際上這有點奇怪。通常情況下,您想要將手機號碼分割爲區號和實際號碼,然後將它們相互混合,然後通過$ gt和$ lt – Sammaye