Même s'il y en avait des dizaines de milliers, j'ai pu effectuer une recherche par correspondance partielle en japonais. Dans (1), j'ai essayé de mettre des données d'environ 1G de texte avec t2.micro d'EC2. Jolie lumière
--Sur la ligne de commande, utilisez des expressions régulières jsavascript. --Si vous le passez en tant qu'objet avec l'expression régulière de python, vous pouvez utiliser une correspondance partielle et une expression régulière
python search.py
search.py
# coding: utf-8
import pymongo
from bson.json_util import loads
from bson.json_util import dumps
import re
client=pymongo.MongoClient()
#database
db=client.test
regx = re.compile("rose", re.IGNORECASE)
cursor = db.honyarara.find({"title":regx})
for document in cursor:
print dumps(document)
Je vais rechercher les données mises dans MongoDB et en faire un CGI qui renvoie le résultat avec json
python -m CGIHTTPServer &
Voir ici ↓ Serveur CGI (1) python en une ligne
curl http://127.0.0.1:8000/cgi-bin/search.py?q=test
Cette fois, le mot passé par q = <> est ** OU recherché ** dans deux champs appelés titre ou kana.
En supposant qu'il existe de telles données → {" title ":" test mongo! "," Kana ":" "}, {}, {} ,,
search.py
#!/usr/bin/python
# coding: utf-8
import pymongo
from bson.json_util import dumps
import re
import json
import cgi
print "Content-type: text/html\n\n"
client=pymongo.MongoClient()
#database test
db=client.test
#Obtenir la requête
form = cgi.FieldStorage()
#S'il existe une variable de requête appelée q
if(form.has_key("q")):
q = form["q"].value
regx = re.compile(q, re.IGNORECASE)
#Définissez l'expression régulière dans le champ et obtenez-la avec la méthode find de mongo
cursor = db.honyarara.find({
"$or": [
{"title":regx},
{"kana":regx}
]
})
else:
print "{}"
exit()
#Mettez-le dans la liste, bson → chaîne de caractères json → convertissez json en variable
items=[]
for document in cursor:
items.append(json.loads(dumps(document)))
#Convertir de tableau en json
print json.dumps({"items": items })
service mongod stop
--Vérifiez le répertoire de données dans / etc / mongo.conf`` / var / lib / mongo
service mongod start
Il semble que les chemins, etc. soient les mêmes selon la méthode de MySQL. Avec l'ancien MyISAM, il est normal de supprimer ou de déplacer des fichiers grossièrement, nostalgique. ..
Recommended Posts