Как передать параметр в функцию скрипта подобия при запросе - PullRequest
0 голосов
/ 29 апреля 2019

В парном соответствии, формула 2 * количество пар совпадений / объединение пар * 100 Например: santhoshi находится в упругом индексируемом значении документа, а santhosh - это элемент поиска в запросе, затем число пар в santhoshi = 8, количество пар соответствует = 7, количество пар в santhosh = 7 результат = 2 * 7 / (7_8) * 100 = 93% ...... Я попробовал ниже код, который получает в поле .sumDocFreq "тип": "invalid_argument_exception," reason ":" Переменная [поле] не определена. "

{ "query": {
        "function_score": {
             "query": {
              "match": {
                "Name":"santhosh"
              }
            },
             "min_score":100,
            "functions": [
                {
                    "script_score": {
                         "script": {
                        "params" : {
                            "inputpairlength": 6 },
                        "source": "double tf = doc.freq; double ttf = field.sumDocFreq;  return (2* tf /(params.inputpairlength + ttf)) * 100;"
                         }
                    }
                }
            ]
        }
    }

}

 "settings": {
      "similarity": {
      "scripted_tfidf": {
        "type": "scripted",
        "script": {
          "source": "double tf = doc.freq; double ttf = field.sumDocFreq;  return  tf / (params.inputpairlength+ttf) * 100;"
        }
      }
    },
getting param.input is not defined


I need to pass parameter and calcluate score using  this "double tf = doc.freq; double ttf = field.sumDocFreq;  return  tf / (params.inputpairlength+ttf) * 100

1 Ответ

0 голосов
/ 29 апреля 2019

Это неправильный способ доступа к полевой статистике. Доступ к полевой статистике -

_index [ 'поле']. DocCount ()

Подробнее об этом можно прочитать здесь - Эластичный гид

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