Как выполнить структурированный запрос, содержащий символы в AWS Cloudsearch - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь выполнить запрос со структурированным префиксом в Cloudsearch.

Вот фрагмент аргументов запроса (csattribute имеет тип текста)

{
    "query": "(prefix field=csattribute '12-3')",
    "queryParser": "structured",
    "size": 5
}

Мой запрос выше приведет к No matches for "(prefix field=csattribute '12-3')".

Однако, если я изменю свой запрос на

{
    "query": "(prefix field=csattribute '12')",
    "queryParser": "structured",
    "size": 5
}

, тогда я получу список ожидаемых результатов.

Я мало что нашел в своем кратком поиске в Google. Как включить в запрос -? Нужно ли его избегать? Есть ли другие символы, которые нужно экранировать?

1 Ответ

0 голосов
/ 03 августа 2020

Я указал на правильное направление с помощью этого вопроса SO: Как искать специальные символы AWS Поиск

Ниже приведен фрагмент из https://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html

Обработка текста в Amazon CloudSearch ... Во время токенизации поток текста в поле разделяется на отдельные токены на обнаруживаемых границах с использованием правил разрыва слов, определенных в алгоритме сегментации текста Unicode.

Согласно правилам разрыва слов, строки, разделенные пробелами, такие как пробелы и табуляции, рассматриваются как отдельные лексемы. Во многих случаях знаки препинания опускаются и рассматриваются как пробелы. Например, строки разделяются дефисами (-) и символом at (@). Однако точки, за которыми не следует пробел, считаются частью токена.

Насколько я понимаю, поля text и text-array токенизируются на основе схемы анализа (в моем случае это engli sh). Текст был токенизирован, а символ - является токеном разрыва слова.

Это поле не требует токенизации. Обновление типа индекса до literal предотвращает всю токенизацию поля, что позволяет запросу в моем вопросе возвращать ожидаемые результаты.

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