Je souhaite rechercher le texte intégral avec elasticsearch + python

  1. download & install
bin/elasticsearch

Un plug-in indispensable pour la recherche élastique

bin/plugin install mobz/elasticsearch-head

Plugin qui analyse la morphologie

bin/plugin install elasticsearch/elasticsearch-analysis-kuromoji/2.5.0
  1. setting kuromoji

Si cela pose problème (relancez la recherche élastique)

config/elasticsearch.yml


index.analysis.analyzer.default.type: custom
index.analysis.analyzer.default.tokenizer: kuromoji_tokenizer

Si vous définissez par index

curl -XPUT http://localhost:9200/index1/ -d '
{
  "index": {
    "analysis": {
      "tokenizer": {
        "kuromoji": {
          "type": "kuromoji_tokenizer"
        }
      },
      "analyzer": {
        "analyzer": {
          "type": "custom",
          "tokenizer":"kuromoji"
        }
      }
    }
  }
}'
  1. check

Vérifier l'analyseur

curl -XPOST http://localhost:9200/index1/_analyze?analyzer=analyzer&petty -d 'c'est un stylo'

{
  "tokens": [
    {
      "token": "cette",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 1
    },
    {
      "token": "Est",
      "start_offset": 2,
      "end_offset": 3,
      "type": "word",
      "position": 2
    },
    {
      "token": "stylo",
      "start_offset": 3,
      "end_offset": 5,
      "type": "word",
      "position": 3
    },
    {
      "token": "est",
      "start_offset": 5,
      "end_offset": 7,
      "type": "word",
      "position": 4
    }
  ]
}

Umm. Il semble que cela fonctionne correctement.

Enregistrement d'échantillon 1

curl -XPUT http://localhost:9200/index1/type1/1 -d '{"text":"C'est du pain"}'

Enregistrement de l'échantillon 2

curl -XPUT http://localhost:9200/index1/type1/2 -d '{"text":"c'est un stylo"}'

Chercher!

curl -XGET http://localhost:9200/index1/type1/_search -d '{"query": {"match": {"text": "stylo"}}}'
{
  "took": 5,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.15342641,
    "hits": [
      {
        "_index": "index1",
        "_type": "type1",
        "_id": "2",
        "_score": 0.15342641,
        "_source": {
          "text": "c'est un stylo"
        }
      }
    ]
  }
}

  1. python client
$ pip install elasticsearch

Recommended Posts

Je souhaite rechercher le texte intégral avec elasticsearch + python
Je veux faire un jeu avec Python
Je veux écrire dans un fichier avec Python
Je veux travailler avec un robot en python.
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
Je veux créer un environnement Python
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
Je veux faire le test de Dunnett en Python
Je veux utiliser MATLAB feval avec python
Je veux créer une fenêtre avec Python
Je souhaite utiliser le répertoire temporaire avec Python2
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux le faire avec Python lambda Django, mais je vais m'arrêter
Je veux faire un patch monkey seulement en partie en toute sécurité avec Python
Je veux facilement implémenter le délai d'expiration en python
Je veux répéter plusieurs fois un générateur Python
Je souhaite afficher uniquement différentes lignes du fichier texte avec diff
Je veux faire la transition avec un bouton sur le ballon
Je veux gérer l'optimisation avec python et cplex
Je veux escalader une montagne avec l'apprentissage par renforcement
Je veux écrire en Python! (2) Écrivons un test
J'ai créé une API de recherche de château avec Elasticsearch + Sudachi + Go + echo
Je veux échantillonner au hasard un fichier avec Python
Liens pour faire ce que vous voulez avec Sublime Text
Je veux hériter de l'arrière avec la classe de données python
Recherche de bits complète avec Python
Je veux diviser une chaîne de caractères avec hiragana
[Python] Je veux faire d'une liste imbriquée un taple
Je veux AWS Lambda avec Python sur Mac!
Je souhaite créer manuellement une légende avec matplotlib
J'ai fait un texte Python
J'ai créé une bibliothèque python qui fait rouler le rang
Je veux faire quelque chose avec Python à la fin
Je veux lier une variable locale avec lambda
[Python] Je veux ajouter un répertoire statique avec Flask [Je veux utiliser autre chose que statique]
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
Je veux dire aux gens qui souhaitent importer depuis un répertoire supérieur avec Python direnv
[Mac] Je souhaite créer un serveur HTTP simple qui exécute CGI avec Python
Je veux pouvoir analyser des données avec Python (partie 3)
Je souhaite spécifier une autre version de Python avec pyvenv
J'ai créé un package pour filtrer les séries chronologiques avec python
Je veux faire quelque chose comme sort uniq en Python
J'ai écrit rapidement un programme pour étudier la DI avec Python ①
Je veux créer un éditeur de blog avec l'administrateur de django
Je veux démarrer un environnement Jupyter avec une seule commande
[Python] Je souhaite obtenir un ensemble commun entre numpy
Je veux démarrer beaucoup de processus à partir de python
[NetworkX] Je souhaite rechercher des nœuds avec des attributs spécifiques
Je veux faire une macro de clic avec pyautogui (désir)
Je veux pouvoir analyser des données avec Python (partie 4)