Reverse word search in Elastic

Below is an example that return the results you expect. I used edge-ngram .

PUT idx_test
{
  "settings": {
    "analysis": {
      "analyzer": {
        "ngram": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "ngram_filter"
          ]
        }
      },
      "filter": {
        "ngram_filter": {
          "type": "edge_ngram",
          "min_gram": 2,
          "max_gram": 4
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fields": {
          "ngram": {
            "type": "text",
            "analyzer": "ngram"
          }
        }
      }
    }
  }
}

POST idx_test/_doc
{
  "title": "Tpp Infotech Ltd."
}

GET idx_test/_search
{
  "query": {
    "match": {
      "title.ngram": "info tpp"
    }
  }
}
1 Like