ElasticSearch API helper

Di seguito una raccolta di semplici chiamate alle API di elasticsearch.

Presupposto che avete installato elasticsearch in locale o sul server vi consiglio di scarica l’estensione di chrome Sense (https://chrome.google.com/webstore/detail/sense-beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?utm_source=chrome-app-launcher-info-dialog) per facilitare i test e le diverse prove che farete su elasticsearch.

Lettura di tutti gli indici:

GET /_cat/indices?v

Rimuovere la cache:

GET /_cache/clear

Aprire e chiudere l’indice per consentire o meno la lettura/scrittura:

POST /myindex_test_eng/_close
POST /myindex_test_eng/_open

Creare l’indice (con custom analyzer):

PUT /myindex_test_eng
{
      "settings": {
         "index": {
            "uuid": "2hO2gqsiSaO8A0Z95zrOxw",
            "number_of_replicas": "1",
            "analysis": {
               "char_filter": {
                  "pattern": {
                     "pattern": "\\W+",
                     "type": "pattern_replace",
                     "replacement": " "
                  },
                  "html": {
                     "type": "html_strip"
                  }
               },
               "analyzer": {
                  "eng_custom": {
                     "type": "custom",
                     "char_filter": [
                        "html",
                        "pattern"
                     ],
                     "filter": [
                        "lowercase",
                        "stopword",
                        "standard",
                        "asciifolding"
                     ],
                     "tokenizer": "my_edge_ngram_tokenizer"
                  }
               },
               "tokenizer": {
                  "my_edge_ngram_tokenizer": {
                     "type": "edgeNGram",
                     "min_gram": "3",
                     "max_gram": "20",
                      "token_chars": [
                        "letter",
                        "digit"
                     ]
                  }
               },
               "filter": {
                  "asciifolding": {
                     "type": "asciifolding"
                  },
                  "standard": {
                     "type": "standard"
                  },
                  "stopword": {
                     "type": "stop",
                     "stopwords": [
                        "_english_"
                     ]
                  },
                  "lowercase": {
                     "type": "lowercase"
                  }
               }
            },
            "version": {
               "created": "1030299"
            }
         }
   }
}

Cancellare indice:

DELETE /myindex_test_eng

Visualizzare i setting dell’indice:

GET /myindex_test_eng/_settings

Recuperare il mapping di un type:

GET /mindex_test_eng/_mapping/myitem/

Recuperare tutti i documenti per un indice:

GET /myindex_test_eng/_search?scroll=1m
{
    "query": { "match_all": {}},
    "sort" : ["_doc"], 
    "size":  1000
}

Alcune ricerche sull’indice:

POST /myindex_test_eng/_search
{
   "query": {
      "match": {
         "title": {
            "query": "lorem"
         }
      }
   }
}

POST /myindex_test_eng/_search
{
 "query" : {
 "term" : { "title": "lorem" }
 }
}

POST /myindex_test_eng/_search
{
 "size":"30",
 "from":0,
  "query":{
   "filtered":{
    "query":{
     "bool":{
      "should":[{
       "multi_match":{
        "query":"common",
        "type":"cross_fields",
        "fields":[
         "title^15","title.exact^15","description"
        ] 
       }
      }
     ]
    }
   }
  }
 }
}

POST /myindex_test_ita/_search
{
 "query": {
 "match": {
 "_all": "lorem"
 }
 }
}