Как выделить вложенные поля в Elasticsearch с помощью запроса DSL или Java API? - PullRequest
0 голосов
/ 21 февраля 2019

Я могу получить результат для вложенного поля с вложенным запросом, но это невозможно, получить подсвеченный результат для вложенного поля с запросом ниже.Можно выделить только нормальные поля.Там в любом случае?Мне также нужен Java API.Использованиеasticsearch 5.4.1

Имеется образец карты индекса с вложенным полем:

PUT testix
{
  "mappings": {
    "topic": {
      "properties": {
        "section": {
          "type": "nested"
        }
      }
    }
  }
}

образец документа:

POST testix/topic/
{
  "id" : "5",
  "name" : "Document APIs",
  "section": [
    {
      "id" : "11",
      "topic_id" : "5",
      "type_id" : "3",
      "text" : "Semper feugiat nibh sed pulvinar. Diam vulputate ut pharetra sit amet aliquam id. Nunc consequat interdum varius sit amet mattis vulputate."
    },
    {
      "id" : "12",
      "topic_id" : "5",
      "type_id" : "2",
      "text" : "Ipsum faucibus vitae aliquet nec ullamcorper sit. Odio eu feugiat pretium nibh. 2525"
    }
  ]
}

POST testix/topic/
{
  "id" : "7",
  "name" : "Search APIs",
  "section": [
    {
      "id" : "15",
      "topic_id" : "7",
      "type_id" : "3",
      "text" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 2525"
    },
    {
      "id" : "16",
      "topic_id" : "7",
      "type_id" : "2",
      "text" : "Nam at lectus urna duis convallis convallis tellus id interdum. Bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim. Blandit massa enim nec dui nunc mattis enim ut. "
    },
    {
      "id" : "17",
      "topic_id" : "7",
      "type_id" : "6",
      "text" : "Sodales ut etiam sit amet nisl purus in. Laoreet non curabitur gravida arcu ac tortor dignissim. "
    }
  ]
}

POST testix/topic/
{
  "id" : "9",
  "name" : "Request Body Search",
  "section": [
    {
      "id" : "3",
      "topic_id" : "9",
      "type_id" : "1",
      "text" : "Et malesuada fames ac turpis egestas maecenas pharetra convallis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Lorem sed risus ultricies tristique."
    },
    {
      "id" : "4",
      "topic_id" : "9",
      "type_id" : "2",
      "text" : "Egestas diam in arcu cursus. 2525 Tellus integer feugiat scelerisque varius morbi enim nunc faucibus."
    },
    {
      "id" : "5",
      "topic_id" : "9",
      "type_id" : "4",
      "text" : "At consectetur lorem donec massa. Eu augue ut lectus arcu bibendum at varius vel pharetra."
    }
  ]
}

POST testix/topic/
{
  "id" : "19",
  "name" : "Request Body Search",
  "section": [
    {
      "id" : "13",
      "topic_id" : "19",
      "type_id" : "1",
      "text" : "Egestas diam in arcu cursus. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus."
    },
    {
      "id" : "15",
      "topic_id" : "19",
      "type_id" : "4",
      "text" : "Vel elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. "
    }
  ]
}

И запрос результатов:

GET testix/_search
{
  "query": {
    "nested": {
      "path": "section",
      "query": {
        "bool": {
          "must": [
            {
              "query_string": {
                "query": "section.text:2525",
                "fields": [
                  "section.text^2.0"
                ]
              }
            },
            {
              "terms": {
                "section.type_id": ["3"]
              }
            }
          ]
        }
      }
    }
  },
  "highlight": {
    "pre_tags": [
      "<mark>"
    ],
    "post_tags": [
      "</mark>"
    ],
    "fragment_size": 50,
    "number_of_fragments": 3,
    "fragmenter": "simple",
    "fields": {
      "section.text": {}
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...