Как мне настроить результаты поиска в vespa? - PullRequest
0 голосов
/ 24 января 2019

У меня есть результат поиска, подобный приведенному ниже:

{
"root": {
    "id": "toplevel",
    "relevance": 1,
    "fields": {
        "totalCount": 20
    },
    "coverage": {
        "coverage": 100,
        "documents": 20,
        "full": true,
        "nodes": 1,
        "results": 1,
        "resultsFull": 1
    },
    "children": [{
            "id": "group:string:Jones",
            "relevance": 9870,
            "value": "Jones",
            "fields": {
                "sum(price)": 39816
            }
        },
        {
            "id": "group:string:Brown",
            "relevance": 8000,
            "value": "Brown",
            "fields": {
                "sum(price)": 20537
            }
        }
    ]
}

}

Я не хочу, чтобы поля и покрытие в моих результатах поиска. Как мне этого добиться? А также я хочу изменить статус в соответствии с ошибкой с сообщением об ошибке. Как я могу это сделать? Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Ответная полезная нагрузка : вы можете создать собственный рендер для управления возвращаемым форматом: https://docs.vespa.ai/documentation/result-rendering.html

HTTP-код состояния : правила определения кода состояниявозвращаемое значение:

  • Если результат не содержит ошибок (Result.hits (). getError () == null): возвращается 200 OK.

  • Если Результат содержит ошибки и не содержит регулярных обращений: Если код ошибки любого ErrorMessage в Result (Result.hits (). GetErrorHit (). ErrorIterator ()) является «КОДОМ ОШИБКИ WEB-СЕРВИСА», первымиз них возвращается.В противном случае, если это «HTTP СОВМЕСТИМЫЙ КОД ОШИБКИ», его отображение возвращается.В противном случае возвращается 500 INTERNAL_SERVER_ERROR.

  • Если Результат содержит ошибки и также содержит действительные совпадения: то же, что и выше, но по умолчанию возвращается 200 OK вместо 500.

КОДЫ ОШИБКИ ВЕБ-СЛУЖБЫ:

200, 301, 302, 307, 400, 401, 403, 404, 405, 406, 408, 428, 429, 431, 500, 501, 502, 511

КОДЫ ОШИБКИ, СОВМЕСТИМЫЕ HTTP:

com.yahoo.container.protect.Error.BAD_REQUEST -> Http code 400
com.yahoo.container.protect.Error.UNAUTHORIZED -> Http code 401
com.yahoo.container.protect.Error.FORBIDDEN -> Http code 403
com.yahoo.container.protect.Error.NOT_FOUND -> Http code 404
com.yahoo.container.protect.Error.INTERNAL_SERVER_ERROR -> Http code 500
com.yahoo.container.protect.Error.INSUFFICIENT_STORAGE -> Http code 507

С этой информацией вы можете написать компонент Searcher (https://docs.vespa.ai/documentation/searcher-development.html), который устанавливает сообщение ErrorMessage в Result, соответствующее желаемому HTTP-состоянию.

Пример реального мира см., Например, в поисковике ограничения скорости, поставляемом в комплекте с Vespa: https://github.com/vespa-engine/vespa/blob/master/container-search/src/main/java/com/yahoo/search/searchers/RateLimitingSearcher.java#L133

0 голосов
/ 24 января 2019

Для настройки результатов вы можете использовать средство визуализации результатов.Пожалуйста, взгляните на https://docs.vespa.ai/documentation/result-rendering.html, который должен дополняться примерами.

...