Сравнение двух числовых полей - PullRequest
0 голосов
/ 25 июня 2018

Я сравниваю 2 числовых поля, но похоже, что это не работает. Результаты caintain документов не отфильтрованы по условию. Я что-то пропустил?

GET crawl-panda-18-06-2018-2-2018/_search

{
  "filtered": {
    "filter": {
      "script": {
        "script": "doc[csv_hit].value > doc[csv_googlebot-desktop].value"
      }
    }
  }
}

Отображение:

    {
  "crawl-panda-18-06-2018-2-2018": {
    "aliases": {},
    "mappings": {
      "items": {
        "properties": {
   (...)
          "csv_googlebot-desktop": {
            "type": "long"
          },
          "csv_hit": {
            "type": "long"
          }
    (...)

Пример результатов:

"csv_googlebot-desktop": 1,
"csv_hit": 0

1 Ответ

0 голосов
/ 26 июня 2018

1-я ошибка найдена @Val: Elasticsearch / Kibana не разрешают линию между GET и запросом.

2-я ошибка - фильтр сценария заменен на запрос сценария:

"Фильтр сценария был заменен запросом сценария. Он работает как запрос в «контексте запроса» и как фильтр в «контексте фильтра» (см. DSL запроса). "

https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-script-filter.html#query-dsl-script-filter

Работает со следующим кодом:

GET index-name/_search
{
    "query": {
        "bool" : {
            "must" : {
                "script" : {
                    "script" : {
                        "source": "doc['field_a'].value > doc['field_b'].value",
                        "lang": "painless"
                     }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...