Dies ist ein Memo, das die Versuche von der Installation von Elasticsearch bis lange vor dem Betrieb zusammenfasst. Der Client verwendet den Python-Client. Auf diese Weise können Sie Daten mit Python hinzufügen und durchsuchen, um die Verarbeitung der Daten zu vereinfachen.
Da die Umgebung debian war, bringen Sie das deb-Paket und installieren Sie es.
% wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.1.deb
% sudo dpkg -i elasticsearch-1.3.1.deb
Fügen Sie den Speicherort von JAVA_HOME in Ihrer Umgebung zu dem Verzeichnis hinzu, in dem Sie nach Java in /etc/init.d/elasticsearch suchen (hinzugefügt / usr / loca / java).
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
JDK_DIRS="/usr/local/java /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-amd64/ /usr/lib/jvm/java-7-openjdk-armhf /usr/lib/jvm/java-7-openjdk-i386/ /usr/lib/jvm/default-java"
Anlaufen
% sudo /etc/init.d/elasticsearch start
Versuchen Sie, auf "http: // localhost: 9200" zuzugreifen, und bestätigen Sie, dass Folgendes zurückgegeben wird. Greifen Sie über einen Browser auf die Adresse zu, um sie zu überprüfen, oder greifen Sie über die Befehlszeile darauf zu, wie unten gezeigt.
% curl -XGET http://localhost:9200/
Antwort
{
"status" : 200,
"name" : "White Rabbit",
"version" : {
"number" : "1.3.1",
"build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015",
"build_timestamp" : "2014-07-28T14:45:15Z",
"build_snapshot" : false,
"lucene_version" : "4.9"
},
"tagline" : "You Know, for Search"
}
Da es unpraktisch ist, wenn nichts vorhanden ist, ist der Standard elasticsearch-head enthalten. Dies reicht für das Minimum. Zum Installieren drücken Sie einfach den Plugin-Befehl, der mit elasticsearch geliefert wird. Nett!
Wenn Sie auf http: // localhost: 9200 / _plugin / head zugreifen können, sind Sie erfolgreich.
Installation
% /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head
Der Bildschirm sieht so aus.
Offiziell: elasticsearch-py Dokumentation: Python Elasticsearch Client
Ich habe Python 2.6.6 auf meinem Computer. Da ich Python noch nie verwendet habe, habe ich mich entschlossen, einen Pip für die Paketverwaltung und eine virtuelle Umgebung zum Wechseln der Umgebung einzubauen, indem ich auf die gegoogelte Seite verwies.
Referenz: Die Pip-Installation wurde einfacher, bevor ich es wusste
Zitiert aus "Ohne es zu wissen wurde es einfacher, pip zu installieren"
curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
pip install virtualenv virtualenvwrapper
vi ~/.bashrc
#Fügen Sie die folgenden 3 Zeilen hinzu
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work
source /path/to/your/virtualenvwrapper.sh
Installation
pip install elasticsearch
Anlaufen
% LANG=ja_JP.UTF8 python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from elasticsearch import Elasticsearch
>>> es = Elasticsearch("localhost:9200")
>>> es
<Elasticsearch([{'host': 'localhost', 'port': 9200}])>
API:elasticsearch.Elasticsearch.index
Fügen Sie die folgenden Daten hinzu. index und doc_type sind erforderliche Elemente. Wenn der angegebene Index nicht vorhanden ist, wird ein neuer Index erstellt. Wenn Sie die ID nicht angeben, wird sie entsprechend nummeriert.
hinzufügen
>>> es.index(index="fruit", doc_type="test", id=1, body={"name":"apple", "color":"red"})
{u'_type': u'test', u'_id': u'1', u'created': True, u'_version': 1, u'_index': u'fruit'}
Wie der Index erstellt wurde
Dokumentation hinzugefügt
Überschreiben, wenn dieselbe ID angegeben ist.
Überschreiben
>>> es.index(index="fruit", doc_type="test", id=1, body={"name":"apple", "color":"green"})
{u'_type': u'test', u'_id': u'1', u'created': False, u'_version': 2, u'_index': u'fruit'}
Wenn keine ID angegeben wird, werden die Nummern entsprechend zugewiesen. Im Folgenden ist id = dnMiX8ufSiiZC_c8KwykuQ.
Wenn id nicht angegeben ist
>>> es.index(index="fruit", doc_type="test", body={"name":"Apfel", "color":"red"})
{u'_type': u'test', u'_id': u'dnMiX8ufSiiZC_c8KwykuQ', u'created': True, u'_version': 1, u'_index': u'fruit'}
Die folgenden Daten sind im Index Frucht aufgeführt. Der Dokumenttyp ist auf Test eingestellt.
id | name | color |
---|---|---|
9qsreGQTTMSIsMzlEe0H0A | Apfel | red |
3MH8LiCNSkOgZMwx_kNebw | apple | red |
YXAo8TfrQbeF3JQpW6dakw | banana | yellow |
mz1wlxRUSSWvCuIIh6k4OQ | orange | orange |
MBEGluC5S-OzNdGoDYavGg | apple | green |
Der durch id angegebene Rückgabewert ist apple,Erwarten Sie grün
>>> res = es.get(index="fruit", doc_type="_all", id="MBEGluC5S-OzNdGoDYavGg")
>>> print json.dumps(res, indent=4)
{
"_type": "test",
"_source": {
"color": "green",
"name": "apple"
},
"_index": "fruit",
"_version": 1,
"found": true,
"_id": "MBEGluC5S-OzNdGoDYavGg"
}
>>> res = es.search(index="fruit", body={"query": {"match_all": {}}})
>>> print json.dumps(res, indent=4)
{
"hits": {
"hits": [
{
"_score": 1.0,
"_type": "test",
"_id": "3MH8LiCNSkOgZMwx_kNebw",
"_source": {
"color": "red",
"name": "apple"
},
"_index": "fruit"
},
{
"_score": 1.0,
"_type": "test",
"_id": "mz1wlxRUSSWvCuIIh6k4OQ",
"_source": {
"color": "orange",
"name": "orange"
},
"_index": "fruit"
},
{
"_score": 1.0,
"_type": "test",
"_id": "9qsreGQTTMSIsMzlEe0H0A",
"_source": {
"color": "red",
"name": "\u308a\u3093\u3054"
},
"_index": "fruit"
},
{
"_score": 1.0,
"_type": "test",
"_id": "MBEGluC5S-OzNdGoDYavGg",
"_source": {
"color": "green",
"name": "apple"
},
"_index": "fruit"
},
{
"_score": 1.0,
"_type": "test",
"_id": "YXAo8TfrQbeF3JQpW6dakw",
"_source": {
"color": "yellow",
"name": "banana"
},
"_index": "fruit"
}
],
"total": 5,
"max_score": 1.0
},
"_shards": {
"successful": 5,
"failed": 0,
"total": 5
},
"took": 3,
"timed_out": false
}
Versuchen Sie, nach einem mit Farbe = Rot zu suchen.
>>> res = es.search(index="fruit", body={"query": {"match": {"color":"red"}}})
>>> print json.dumps(res, indent=2 , ensure_ascii=False)
{
"hits": {
"hits": [
{
"_score": 0.30685282000000003,
"_type": "test",
"_id": "3MH8LiCNSkOgZMwx_kNebw",
"_source": {
"color": "red",
"name": "apple"
},
"_index": "fruit"
},
{
"_score": 0.30685282000000003,
"_type": "test",
"_id": "9qsreGQTTMSIsMzlEe0H0A",
"_source": {
"color": "red",
"name": "Apfel"
},
"_index": "fruit"
}
],
"total": 2,
"max_score": 0.30685282000000003
},
"_shards": {
"successful": 5,
"failed": 0,
"total": 5
},
"took": 2,
"timed_out": false
}
Der Fruchtindex verschwindet sauber.
>>> es.indices.delete(index="fruit")
{u'acknowledged': True}
Recommended Posts