Il prossimo MongoDB 2.4 supporta full-text search.Ricerca a testo completo in Pymongo
Lo facciamo nella shell mongo con un comando, come ad esempio
db.players.runCommand("text", {
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit": 10})
Ora, quando il porting questo pymongo, abbiamo a che fare con il fatto che runCommand
non è definito sulla pymongo Collection
di classe. Sono stato in grado di capire ciò che il comando vera era, quindi questo lavorato nella shell:
db.runCommand({
"text": "players",
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit": 10})
che funzionava. Ma questo non mi dice esattamente come farlo funzionare in pymongo. Ho provato:
db.command({
"text":"players",
"pipeline": [
("search","alice"), ("project",{"name":1,"_id":0}), ("limit",10)
]})
che non ha funzionato (ha detto "nessuna ricerca specificata"). Ho anche provato:
db.command({
"text": "players",
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit":10})
che naturalmente non riesce con: "no tale cmd: progetto".
posso far funzionare le cose se io uso solo search
e limit
, per esempio
db.command({
"text": "players",
"search": "alice",
"limit": 10})
ma vorrei usare filter
e project
con pymongo. Qualcuno ha ottenuto la ricerca full-text lavorando con progetto e filtro?
A parte questo: Forse c'è un buon modo per dedurre la forma di un comando pymongo da un comando di shell?
fa questo lavoro per regex così? come db.command ("regex", "players", search = "alice") – Jeff
Non ho familiarità con il comando 'regex'. Non appare su [l'elenco ufficiale dei comandi] (http://docs.mongodb.org/manual/reference/command/) da MongoDB. –