[PYTHON] Mongodb Introduction la plus courte (2) J'ai recherché des dizaines de milliers

Créer une API de recherche pour MongoDB + python

Introduction la plus courte de Mongodb (1) Installer et démarrer dans EC2 et mettre soudainement des dizaines de milliers Suite

Rechercher avec MongoDB + python

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

Passer l'expression canonique python en tant qu'objet

--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)

Faisons-en un serveur API.

Je vais rechercher les données mises dans MongoDB et en faire un CGI qui renvoie le résultat avec json

Démarrez python CGI ** Tturn! **

python -m CGIHTTPServer &

Voir ici ↓ Serveur CGI (1) python en une ligne

Accédez à l'URL et vérifiez si JSON apparaît

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 }) 

Initialisation de MongoDB

N'imitez pas un bon garçon, mais quand vous voulez recommencer

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

Mongodb Introduction la plus courte (2) J'ai recherché des dizaines de milliers
Mongodb Introduction la plus courte (1) Installer et démarrer dans EC2 et mettre soudainement des dizaines de milliers
J'ai recherché le contenu de l'agent CloudWatch Logs
J'ai recherché des commandes de CD.
Mongodb Shortest Introduction (3) J'ai essayé d'accélérer même des millions
Enregistrement de l'introduction de Python pour les nouveaux arrivants
J'ai cherché un nombre premier avec python
[Python] J'ai recherché différents types! (Dactylographie)
J'ai recherché Railway Kawayanagi à partir des données
[Python] J'ai cherché le plus long Pokémon Shiritori