Ceci est un mémo qui résume les essais depuis l'installation d'elasticsearch jusqu'à une longue période avant l'opération. Le client utilise le client python. Avec cela, vous pouvez ajouter et rechercher des données à l'aide de python, il sera donc plus facile de traiter les données.
Puisque l'environnement était Debian, apportez le paquet deb et installez-le.
% wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.1.deb
% sudo dpkg -i elasticsearch-1.3.1.deb
Ajoutez l'emplacement de JAVA_HOME dans votre environnement au répertoire où vous allez pour trouver java dans /etc/init.d/elasticsearch (ajouté / 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"
Commencez
% sudo /etc/init.d/elasticsearch start
Essayez d'accéder à http: // localhost: 9200
et confirmez que ce qui suit est renvoyé.
Accédez à l'adresse depuis un navigateur pour la vérifier, ou accédez-y à partir de la ligne de commande comme indiqué ci-dessous.
% curl -XGET http://localhost:9200/
réponse
{
"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"
}
Puisqu'il n'est pas pratique s'il n'y a rien, le standard elasticsearch-head est inclus. C'est suffisant pour le minimum. Pour installer, appuyez simplement sur la commande plugin fournie avec elasticsearch. Agréable!
Si vous pouvez accéder à http: // localhost: 9200 / _plugin / head, vous réussissez.
Installation
% /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head
L'écran ressemble à ceci.
Officiel: elasticsearch-py Documentation: Python Elasticsearch Client
J'ai python 2.6.6 sur mon ordinateur. Comme je n'ai jamais utilisé python, j'ai décidé de mettre un pip pour la gestion des paquets et un virtualenv pour changer d'environnement en me référant à la page googlé.
Référence: L'installation de Pip est devenue plus facile avant que je le sache
Cité de "Sans le savoir, il est devenu plus facile d'installer pip"
curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
pip install virtualenv virtualenvwrapper
vi ~/.bashrc
#Ajoutez les 3 lignes suivantes
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work
source /path/to/your/virtualenvwrapper.sh
Installation
pip install elasticsearch
Commencez
% 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
Ajoutez les données suivantes. index et doc_type sont des éléments obligatoires. Si l'index spécifié n'existe pas, un nouvel index sera créé. Si vous ne spécifiez pas l'identifiant, il sera numéroté de manière appropriée.
ajouter à
>>> 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'}
Comment l'index a été créé
Documentation ajoutée
Écraser si le même identifiant est spécifié.
Écraser
>>> 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'}
Si id n'est pas spécifié, les numéros seront attribués de manière appropriée. Dans ce qui suit, id = dnMiX8ufSiiZC_c8KwykuQ.
Si l'ID n'est pas spécifié
>>> es.index(index="fruit", doc_type="test", body={"name":"pomme", "color":"red"})
{u'_type': u'test', u'_id': u'dnMiX8ufSiiZC_c8KwykuQ', u'created': True, u'_version': 1, u'_index': u'fruit'}
Les données suivantes sont définies dans l'index appelé fruit. Le type de document est défini sur test.
id | name | color |
---|---|---|
9qsreGQTTMSIsMzlEe0H0A | pomme | red |
3MH8LiCNSkOgZMwx_kNebw | apple | red |
YXAo8TfrQbeF3JQpW6dakw | banana | yellow |
mz1wlxRUSSWvCuIIh6k4OQ | orange | orange |
MBEGluC5S-OzNdGoDYavGg | apple | green |
Spécifié par id, la valeur de retour est apple,Attendez-vous à du vert
>>> 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
}
Essayez d'en rechercher un avec couleur = rouge.
>>> 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": "pomme"
},
"_index": "fruit"
}
],
"total": 2,
"max_score": 0.30685282000000003
},
"_shards": {
"successful": 5,
"failed": 0,
"total": 5
},
"took": 2,
"timed_out": false
}
L'indice du fruit disparaît proprement.
>>> es.indices.delete(index="fruit")
{u'acknowledged': True}
Recommended Posts