Когда мы пытаемся выполнить поиск в mongo cli, мы не получаем правильные данные. Вот полный сценарий:MongoDB запрос для полнотекстового поиска и Geo, возвращающий неправильный результат
Мы имеем следующий JSON в коллекции:
"_id" : 18348,
"Name" : "Applebee's Neighborhood Grill",
"AddressLine1" : "2545 Scottsville Rd, Bowling Green, KY - 42104, United States",
"loc" : {
"lng" : -86.42583465576172,
"lat" : 36.95203399658203
},
"ProfilePicturePath" : "",
"MarketID" : 92,
"TotalFavorites" : 0,
"PriceRating" : null,
"ProfileType" : "R",
"Cuisines" : [ ],
"Rating" : 4
Когда мы ищем, где мы даем ОБА Geo запросы и полный текст, мы получаем неверный результат. В этом случае (ниже) я изменил долготу: db.rests.runCommand («текст», {поиск: «Applebee's», фильтр: {loc: {$ рядом: [-86.43113708496094,136.963356018066406], $ maxDistance: 1/69}}})
я получаю:
{
"queryDebugString" : "applebe||||||",
"language" : "english",
"results" : [
{
"score" : 0.6666666666666666,
"obj" : {
"_id" : 18348,
"Name" : "Applebee's Neighborhood Grill",
"AddressLine1" : "2545 Scottsville Rd, Bowling Green, KY - 42104, United States",
"loc" : {
"lng" : -86.42583465576172,
"lat" : 36.95203399658203
},
"ProfilePicturePath" : "",
"MarketID" : 92,
"TotalFavorites" : 0,
"PriceRating" : null,
"ProfileType" : "R",
"Cuisines" : [ ],
"Rating" : 4
}
}
],
"stats" : {
"nscanned" : 1,
"nscannedObjects" : 1,
"n" : 1,
"nfound" : 1,
"timeMicros" : 92
},
"ok" : 1
}
мы пытались со следующими показателями:
db.rests.ensureIndex({ "locs": "2d" })
db.rests.ensureIndex({Name: "text",AddressLine1: "text"})
db.rests.ensureIndex({Name: "text",AddressLine1: "text"},{"loc":"2d"})
Возможно, мы делаем что-то не так? Если мы не используем Geo Filter и не используем другие фильтры, такие как Rating и т. Д., Он отлично работает.
Пожалуйста, помогите
Amit
http://www.aquevix.com
текстовый поиск по-прежнему находится в стадии бета-тестирования (MongoDB 2.4) и $ near, похоже, не работает как часть фильтра. Однако согласно [этому сообщению] (https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/OEHA51esH-0) ** $ geoWithin ** работает. Можете ли вы попробовать это? – jimoleary