Конфликт проверки AWS CLI / Boto3 Cloudsearch

Используется последний пакет awscli, установленный через pip на python 3. Конфликт проверки с AWS Cloudsearch:

Команда:

user @ desktop-09: ~ $ aws cloudsearch define-analysis-scheme --domain-name domain-clitest --analysis-scheme '{"AnalysisSchemeName": "stopwords", "AnalysisSchemeLanguage": "ru", "AnalysisOptions": {"Stopwords": "http"}} '

Возвращает эту ошибку:

Произошла ошибка (InvalidType) при вызове операции DefineAnalysisScheme: стоп-слова должны быть массивом json

Затем я изменяю стоп-слова, чтобы они были массивом из одного элемента:

user @ desktop-09: ~ $ aws cloudsearch define-analysis-scheme --domain-name domain-clitest --analysis-scheme '{"AnalysisSchemeName": "stopwords", "AnalysisSchemeLanguage": "ru", "AnalysisOptions": {"Stopwords": ["http"]}} '

Он снова терпит неудачу, ищет строку:

Недопустимый тип для параметра AnalysisScheme.AnalysisOptions.Stopwords, значение: ['http'], тип: список классов, допустимые типы: класс str

Даже документация по интерфейсу командной строки кажется противоречивой. :

Стоп-слова -> (строка)

Массив JSON терминов, который следует игнорировать при индексировании и поиске. Например, ["a", "an", "the", "of"]. Словарь игнорируемых слов должен явно перечислять каждое слово, которое вы хотите игнорировать. Подстановочные знаки и регулярные выражения не поддерживаются.

Спасибо!


person stephencoetzee    schedule 20.03.2017    source источник


Ответы (1)


поэтому Stopwords - это строковое значение, представляющее JSON-массив терминов, которые следует игнорировать во время индексации и поиска:

user@desktop-09:~$ aws cloudsearch define-analysis-scheme --domain-name domain-clitest --analysis-scheme \
'{ "AnalysisSchemeName": "stopwords",\
   "AnalysisSchemeLanguage": "en", \
   "AnalysisOptions": { "Stopwords": "[\"http\"]" }}'
person Frederic Henri    schedule 21.03.2017