написать запрос вasticsearch, чтобы найти поле (IP_address) с пользовательским анализатором шаблонов и обычным полнотекстовым поиском? - PullRequest
0 голосов
/ 18 мая 2018

Проверьте мой анализатор

PUT my_index
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_custom_ip_analyzer": {
              "type": "custom",
              "tokenizer": "my_tokenizer"
            }
          },
          "tokenizer": {
            "my_tokenizer": {
              "type": "pattern",
              "pattern": "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])",
              "group":0
            }
          }
        }
      }
    }

Проверьте мое отображение PUT / my_index / _mapping / reports {"properties": {"IP_address": {"type":" text "," analyzer ":" my_custom_ip_analyzer "}}}

Добавление некоторых данных в my_index

PUT /my_index/reports/5
{
    "document_id": "Doc-4004-05-15",
                    "title": "logical"
                    "email_address": "raj@gmail.com",
                    "IP_address": "192.168.1.1",
                    "rating": "low"
}
PUT /my_index/reports/6
{
    "document_id": "Doc-4006-06-16",
                    "title": "logical"
                    "IP_address": "this is ip 192.168.1.1",
                    "rating": "low"
}

И теперь, если я ищу

GET /my_index/reports/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "term": {
          "IP_address": "this is ip 192.168.1.1"
        }
      }
    }
  }
}

Я получаю следующий вывод:

{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

, но это не то, что я ищу, если я ищу "этоip 192.168.1.1 "или" 192.168.1.1 " в любом случае я должен получить 1 результат, поэтому кто-то может мне помочь с запросом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...