[PYTHON] Installation d'Elasticsearch et fonctionnement de base pour ubuntu

Installation et fonctionnement de base d'Elasticsearch

Installation (sur Ubuntu 18.04)

ElasticSearch Install

install Java $ sudo apt install openjdk-11-jdk

install Elasticsearch $ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - $ echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list $ sudo apt update $ sudo apt install elasticsearch

$ sudo systemctl start elasticsearch $ sudo systemctl status elasticsearch

Vérification $ curl http://127.0.0.1:9200

Kibana Install $ apt update $ apt install kibana

$ systemctl start kibana

Vérification access http://localhost:5601

kuromoji Install $ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji

Édition CRUD

Créez un index appelé livre et créez un document.

PUT /book/_doc/1
{
	"title":"Super Primer Business Python",
	"author":"Shogo Nakajima",
	"publisherName":"Nikkei BP",
	"salesDate":"7 juin 2019",
	"itemPrice":"2592"
}
Généré automatiquement sans spécifier d'ID de document

PUT /book/_doc
{
	"title":"Super Primer Business Python",
	"author":"Shogo Nakajima",
	"publisherName":"Nikkei BP",
	"salesDate":"7 juin 2019",
	"itemPrice":"2592"
}
* L'identifiant du document sera composé de 20 caractères alphanumériques aléatoires
Obtenir de la documentation

GET /book/_doc/1
Mettre à jour la documentation

POST /book/_update/1
{
  "doc": {
    "itemPrice": 1292
  }
}
Supprimer le document

DELETE /book/_doc/1
Supprimer l'index

GET /book/_mapping
Vérifiez le mappage (quelque chose comme un schéma)

GET /book/_mapping
Créer un index

PUT /book
Créer un index en spécifiant le mappage

PUT /book
{
  "mappings": {
    "properties": {
      "title": { "type": "keyword" },
      "author": { "type": "keyword" },
      "publisherName": { "type": "keyword" },
      "isbn" : { "type": "keyword" },
      "itemCaption" : { "type": "text" },
      "itePrice" : { "type": "long"}
    }
  }
}
Créez plusieurs documents à la fois

POST /book/_bulk 
{"index": {"_id": 1}} 
{ "title": "Laisse Python faire les choses ennuyeuses", "author": "Al Sweigart/Aizo Aikawa","publisherName":"O'Reilly Japon", "isbn":" 9784873117782", "itemCaption":"Des tâches telles que le changement de nom des fichiers et la mise à jour des données de calcul de table sont fréquentes dans le travail quotidien. Il n'y a pas de problème si vous en corrigez seulement un ou deux, mais quand il devient des dizaines ou des centaines, il est incontrôlable. Il serait beaucoup plus facile qu'un ordinateur prenne en charge une tâche répétitive aussi simple. Dans ce livre, vous apprendrez à créer un programme Python3 capable de gérer des processus qui prendraient énormément de temps à la main en un instant. Le public cible est constitué de non-programmeurs. Si vous maîtrisez les bases de ce livre, même les programmeurs inexpérimentés seront en mesure de créer des programmes pratiques qui peuvent facilement effectuer des tâches simples et gênantes. De plus, vous pouvez améliorer vos compétences dans le traitement automatique de tâches similaires en résolvant les exercices à la fin du chapitre.", "itemPrice": 3996 }
{"index": {"_id": 2}} 
{ "title":"Super Primer Business Python","author":"Shogo Nakajima","publisherName":"Nikkei BP","isbn":" 9784296102136","itemCaption":"Vous pouvez acquérir les compétences de base en programmation indispensables aux entreprises! Explique Python, un langage d'intérêt avec l'intelligence artificielle, depuis le début. Étape par étape de l'écriture à la procédure d'exécution. Maîtrisez régulièrement la syntaxe essentielle telle que le branchement conditionnel et la répétition. Acquisition automatique d'informations en ligne, base du web scraping. Faites l'expérience de l'apprentissage automatique qui reconnaît les caractères manuscrits à partir de zéro.","itemPrice": 2592} 
{"index": {"_id": 3}} 
{ "title":"Premiers pas avec Python","author":"Bill Rubanovic/Yasushi Saito","publisherName":"O'Reilly Japon"," isbn":" 9784873117386","itemCaption":"Cela fait un quart de siècle que Python est né. La popularité de Pyson monte en flèche dans divers domaines, notamment la science des données, le développement Web et la sécurité. Même dans le domaine de l'enseignement de la programmation, l'adoption de Python est en augmentation au lieu de C. Ce livre est une introduction à Pyson, écrit pour ceux qui sont nouveaux dans la programmation. Il n'y a aucune connaissance particulière à assumer. Des bases de la programmation et de Phython aux applications telles que le Web, la base de données, le réseau et le traitement parallèle, la programmation Python sera expliquée de manière facile à comprendre.","itemPrice": 3996}
{"index": {"_id": 4}} 
{ "title":"Introduction à Python nouveau et clair","author":"Nobuhiro Shibata","publisherName":"Créatif SB","isbn":"9784815601522","itemCaption":"Avec 299 exemples de programmes appropriés et 165 graphiques faciles à comprendre, vous pouvez apprendre systématiquement et régulièrement les bases de la grammaire et de la programmation de Pyson.","itemPrice": 2808}
{"index": {"_id": 5}} 
{ "title":"Programmeur d'autoformation Des bases du langage Python à votre façon de travailler","author":"Corey Arsov/Takayuki Shimizukawa"," publisherName":"Nikkei BP"," isbn":"9784822292270"," itemCaption":"Orienté objet, shell, expression régulière, gestion des packages, gestion des versions, structure des données, algorithme, comment trouver et exécuter des tâches. Des bases du langage Pyson à la façon de travailler, vous pouvez comprendre les connaissances et le savoir-faire nécessaires pour travailler en tant que programmeur dans un seul livre.","itemPrice": 2376}
Ajouter un élément au document

POST /book/_update/5
{
  "doc": {
    "discountRate": 0
  }
}

Chercher

Rechercher tous les documents

GET /book/_searh

GET book/_search
{
    "query": {
    "match_all": {}
  }
}
Rechercher des documents contenant le mot spécifié

GET book/_search
{
  "query": {
    "match": {
      "itemCaption": "la programmation"
    }
  }
}
Rechercher des documents par et condition

GET book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "itemCaption": "la programmation"
          }
        },
        {
          "match": {
            "itemCaption": "commencer"
          }
        }
      ]
    }
  }
}
pas de recherche (ne contient pas un mot)

GET book/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "itemCaption": "commencer"
          }
        }
      ]
    }
  }
}
ou rechercher

GET book/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "itemCaption": "la programmation"
          }
        },
        {
          "match": {
            "itemCaption": "commencer"
          }
        }
      ]
    }
  }
}
Rechercher en pondérant des mots spécifiques

GET book/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "itemCaption": {
              "query": "la programmation"
            }
          }
        },
        {
          "match": {
            "itemCaption": {
              "query": "commencer",
              "boost": 5
            }
          }
        }
      ]
    }
  }
}
Mettre en évidence la recherche

GET book/_search
{
  "query": {
    "match": {
      "itemCaption": "la programmation"
    }
  },
  "highlight": {
    "fields": {
      "itemCaption": {}
    }
  }
}
Rechercher et trier par plage

GET book/_search
{
  "query": {
    "range": {
      "itemPrice": {
        "lte": 3000
      }
    }
  },
  "sort": [
    {
      "itePrice": {
        "order": "asc"
      }
    }
  ]
}
Créer des données statistiques à l'aide de l'agrégation

Agréger le nombre d'articles pour chaque gamme de prix de données, y compris la programmation


GET book/_search
{
  "query": {
    "match": {
      "itemCaption": "la programmation"
    }
  }, 
  "aggregations": {
    "itemPrice_bucket": {
      "range": {
        "field": "itemPrice",
        "ranges": [
          {
            "key": "0-1500", 
            "from": 0,
            "to": 1500
          },
          {
            "key": "1501-3000",
            "from": 1501,
            "to": 3000
          },
          {
            "key": "3000-4500",
            "from": 3001,
            "to": 4500
          }
        ]
      }
    }
  }
}

Recommended Posts

Installation d'Elasticsearch et fonctionnement de base pour ubuntu
Installation de Python et grammaire de base
Vérification de l'installation et du fonctionnement de Django
Installation de Python (Python 3.7.7) et grammaire de base
PySpark 1.5.2 + Elasticsearch 2.1.0 Procédure d'installation et exécution
Méthode d'installation Ubuntu 20.04 LTS (pour lecteur externe)
Fonctionnement Linux pour les débutants Résumé des commandes de base
Mémo de développement BESS Partie 01: Installation et utilisation de base de BESS
[Explication pour les débutants] Syntaxe et concept de base de TensorFlow
De l'installation de ROS pour Windows au contrôle de fonctionnement
[Python / Chrome] Paramètres de base et opérations de scraping
Fonctionnement de base de Python Pandas Series et Dataframe (1)
Organisation des procédures de base pour l'analyse des données et le traitement statistique (4)
Organisation des procédures de base pour l'analyse des données et le traitement statistique (2)
Installation de Python 3 sur Mac et vérification du fonctionnement de base Partie 1
Construction du système Web (super basique) ③: Construction du serveur DB et fonctionnement de base
Traitement de pip et des erreurs d'installation associées sur Ubuntu 18.04
Construction du système Web (super basique) ②: construction du serveur AP et fonctionnement de base
Cours de base Python (2 installation Python)
installation de jupyter et pandas
Fonctionnement de base des pandas
FX_tool pour Hython Basic02
Fonctionnement de base des Pandas
Installation de MongoDB (Ubuntu 18 LTS)
FX_tool pour Hython Basic01
Procédure d'installation pour Python et Ansible avec une version spécifique
Résumé de la prise en charge des opérations de hachage (dictionnaire) pour Ruby et Python