[PYTHON] Mongodb Kürzeste Einführung (2) Ich habe nach Zehntausenden gesucht

Erstellen Sie eine Such-API für MongoDB + Python

Mongodb kürzeste Einführung (1) In EC2 installieren und starten und plötzlich Zehntausende einfügen Fortsetzung

Suche mit MongoDB + Python

Obwohl es Zehntausende gab, konnte ich auf Japanisch nach Teilübereinstimmungen suchen. In (1) habe ich versucht, mit t2.micro von EC2 Daten von etwa 1 G Textmenge zu speichern. Ziemlich leicht

Übergeben Sie den kanonischen Ausdruck von Python als Objekt

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("Rosa", re.IGNORECASE)
cursor = db.honyarara.find({"title":regx})

for document in cursor:
    print dumps(document)

Machen wir es zu einem API-Server.

Ich werde die in MongoDB gespeicherten Daten durchsuchen und daraus ein CGI machen, das das Ergebnis mit json zurückgibt

Starten Sie Python CGI ** Tturn! **

python -m CGIHTTPServer &

Siehe hier ↓ CGI-Server (1) Python in einer Zeile

Greifen Sie auf die URL zu und prüfen Sie, ob JSON angezeigt wird

curl http://127.0.0.1:8000/cgi-bin/search.py?q=test

Dieses Mal wird das von q = <> übergebene Wort in zwei Feldern namens Titel oder Kana ** ODER gesucht **.

Vorausgesetzt, es gibt solche Daten → `{" 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
#Abfrage abrufen
form = cgi.FieldStorage()
#Wenn es eine Anforderungsvariable namens q gibt
if(form.has_key("q")):
    q = form["q"].value
    regx = re.compile(q, re.IGNORECASE)
#Stellen Sie den regulären Ausdruck in das Feld ein und rufen Sie ihn mit der Find-Methode von Mongo ab
    cursor = db.honyarara.find({
    "$or": [
    {"title":regx},
    {"kana":regx}
    ]
    })

else:
    print "{}"
    exit()

#Fügen Sie es in die Liste ein, bson → json Zeichenfolge → konvertieren Sie json in eine Variable
items=[]
for document in cursor:
    items.append(json.loads(dumps(document)))

#Konvertieren Sie von Array zu JSON
print json.dumps({"items": items }) 

Initialisierung von MongoDB

Imitiere keinen guten Jungen, aber wenn du von vorne anfangen willst

service mongod stop

--Überprüfen Sie das Datenverzeichnis in / etc / mongo.conf`` / var / lib / mongo

service mongod start

Es scheint, dass die Pfade usw. gemäß der Methode von MySQL gleich sind. Mit dem alten MyISAM ist es in Ordnung, Dateien nostalgisch grob zu löschen oder zu verschieben. ..

Recommended Posts

Mongodb Kürzeste Einführung (2) Ich habe nach Zehntausenden gesucht
Mongodb Kürzeste Einführung (1) Installieren und starten Sie in EC2 und setzen Sie plötzlich Zehntausende ein
Ich habe nach dem Inhalt von CloudWatch Logs Agent gesucht
Ich habe nach CD-Befehlen gesucht.
Mongodb Kürzeste Einführung (3) Ich habe versucht, sogar Millionen zu beschleunigen
Aufzeichnung der Python-Einführung für Neulinge
Ich habe mit Python nach einer Primzahl gesucht
[Python] Ich habe nach verschiedenen Typen gesucht! (Tippen)
Ich habe nach Railway Kawayanagi aus den Daten gesucht
[Python] Ich habe nach dem längsten Pokemon Shiritori gesucht