Как выполнить поиск по именам, содержащим пробел - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь выполнить агрегацию для имени свойства, содержащего пространство в нем.Так что это тело запроса для поиска

{
  "size": 0,
  "aggs": {
    "categoryId": {
      "filter": {
        "bool": {
          "filter": [
            {
              "term": {
                "title.list": "iphone"
              }
            }
          ]
        }
      },
      "aggs": {
        "results": {
          "terms": {
            "field": "category.l3.id",
            "size": 4
          },
          "aggs": {
            "categoryName": {
              "terms": {
                "field": "category.l3.id.keyword",
                "size": 1
              }
            }
            "Operating_System": {
              "terms": {
                "field": "detail.attribute.Operating System.raw",
                "size": 9
              }
            }
          }
        }
      }
    }
  }
}

. Как видите, в имени свойства «Операционная система» есть пробел.Я пытался бежать, как это

"field": "detail.attribute['Operating System'].raw"

Это все еще не работает.Как это исправить?Это отображение

 "detail": {
    "properties": {        
        "attribute": {
            "dynamic": "true",
            "properties": {               
                "Operating System": {
                    "type": "text",
                    "fields": {
                        "raw": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Вам нужно добавить "\" за пробелом, чтобы это работало. попробуйте сделать это так

"detail": {
    "properties": {        
        "attribute": {
            "dynamic": "true",
            "properties": {               
                "Operating\ System": {
                    "type": "text",
                    "fields": {
                        "raw": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
        }
    }
}
0 голосов
/ 12 мая 2018

Я получил это работает.Видимо пробел в имени свойства допустим.

"Operating_System": {
              "terms": {
                "field": "detail.attribute.Operating System.raw",
                "size": 9
              }
            }

Я не знаю, как это раньше не работало, может быть, я что-то пропустил, но этот запрос вернет ответ

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