Как выполнить запрос «Больше как этот» для нескольких вложенных и не вложенных полей (вложенный1 объединенный вложенный2 объединенный parent.filed1, parent.filed2)? - PullRequest
0 голосов
/ 04 июня 2019

Я хочу создать подобный запрос для следующих объединенных полей:

[
   field1.field1_nested.field1_nested_field1,
   field1.field1_nested.field1_nested_field2,
   field1.field2_nested.field2_nested_field1,
   field1.field3_object.field3_object_field1.*,
   field2,
   field3
]

Упругое отображение:

{
  "BaseObject(type)": {
    "properties": {
      "field1": {
        "type": "object",
        "properties": {
//Nested1
          "field1_nested": {
            "type": "nested",
            "properties": {
              "field1_nested_field1": {
                "type": "keyword"
              },
              "field1_nested_field2": {
                "type": "keyword"
              }
            }
          },
//Nested2
          "field1_nested2": {
            "type": "nested",
            "properties": {
              "field1_nested2_field1": {
                "type": "keyword"
              }
            }
          },
//Object
          "field1_object": {
            "type": "object",
            "properties": {
              "field1_object_field1": {
                "type": "text",
                "fields": {
                  "default": {
                    "type": "text",
                    "analyzer": "whitespace_analyzer",
                    "term_vector": "with_positions_offsets"
                  },
                  "en": {
                    "type": "text",
                    "analyzer": "english",
                    "term_vector": "with_positions_offsets"
                  }
                }
              }
            }
          }
        }
      },
//Other fields
      "field2": {
        "type": "keyword"
      },
      "field3": {
        "type": "keyword"
      }
    }
  }
}

Мне нужны похожие объекты на основе вышеуказанных полей, я пробовал вот так

{
  "query": {
    "bool": {
      "more_like_this": {
        "like": {
          "_id": 13756018,
          "_type": "BaseObject(type)",
          "_index": "my_index"
        },
        "min_term_freq": 1,
        "fields": [
          "field1.field1_nested.field1_nested_field1",
          "field1.field1_nested.field1_nested_field2",
          "field1.field2_nested.field2_nested_field1",
          "field1.field3_object.field3_object_field1.*",
          "field2",
          "field3"
        ]
      }
    }
  },
  "from": 0,
  "size": 6
}

Но не работает, потому что есть 2 разных вложенных типа. Я пробовал с следует и разделить на 3 больше, как этот запрос, но проблема здесь заключается в следующем: из-за должен будет вернуть все объекты, если только один файл равен

...