Это ошибка в API поиска GAE?
Я реализую полнотекстовый поиск на основе базы данных песен на GuitarParty.com. Данные состоят из текстов песен на нескольких языках, что само по себе не является проблемой.
Однако, когда результаты поиска возвращаются с использованием snippeted_fields, все акцентированные символы в словах, такие как ÚúÉéÍí, возвращаются с использованием их общих безударных версий, UuEeIi.
Вот как я формирую свой запрос:
query = search.Query(
query_string=qs,
options=search.QueryOptions(
sort_options=search.SortOptions(
#match_scorer=search.MatchScorer(),
match_scorer=search.RescoringMatchScorer(),
expressions=[
search.SortExpression(expression='_score + importance * 0.03', default_value=0)
#search.SortExpression(expression='_score', default_value=0)
],
limit=1000,
),
cursor=cursor,
returned_fields=['title','atomtitle','item', 'image'],
snippeted_fields=['title','atomtitle', 'body','item'],
)
)
Я почти уверен, что это не проблема кодирования, поскольку все выглядит правильно, если я перетаскиваю поля документа напрямую (как я делаю с заголовками). Это только отрывочные изложения, которые отображаются неправильно.
Чтобы лучше понять, о чем я говорю, вы можете взять мой тестовый движок здесь: http://gp-search.appspot.com/ и найти что-то исландское. Пример фразы: Vísur vatnsenda Rósu
Это вернет документ с этим фрагментом:
Аугун мин ог авгун Синь. O þa fogru steina. Mitt er þitt og þitt er mitt, veu veist hvað Например, мейна. Langt er siðan sa eg hann sannlega friður var hann.
Правильно прописанный фрагмент должен быть:
Аугун мин ог август Инь. F þá fögru steina. Mitt er þitt og þitt er mitt, veú veist hvað Например, мейна. Лангер эр-сэн-эг-ханн саннлега фри вар вар ханн.
Мне лучше генерировать свои собственные фрагменты из данных документа, или я могу что-то сделать, чтобы получить фрагменты с акцентированными символами в словах?
1 ответ
Данные, которые вы вводите, нормализуются, так что вам не придется беспокоиться о наличии или отсутствии акцентов при поиске.