2013-11-02 2 views
1

Когда я что-то искал с помощью API поиска, я ожидал бы, что строки запроса будут нормализованы (например, акцентированные буквы превратятся в их несогласованные копии).GAE Search API не нормализует строки поиска?

Так, например, если бы я искал «azúcar», Search API действительно искал бы «azucar».

Вот мой код обработчика поиска:

index = search.Index(name='index', namespace='namespace') 
    results = index.search(
     query=Query(
      query_string=search_query, 
      options=QueryOptions(
       limit=10, 
       cursor=Cursor(), 
       sort_options=SortOptions(
        match_scorer=search.RescoringMatchScorer() 
       ) 
      ) 
     ) 
    ) 

ли на самом деле сделать это Search API? Я делаю что-то неправильно?

Заранее благодарен

ответ

2

Поиск API не делает этого; см. Partial matching GAE search API и GAE Full Text Search: can only match exact word? how to search like contains(...)? для аналогичных обсуждений.

В моей компании мы реализовали упомянутый подход токенизации, и, похоже, он работает достаточно хорошо. Один из подходов к вашей проблеме - нормализовать ASCII, когда вы делаете токенизацию. См. What is the best way to remove accents in a Python unicode string? для некоторых практических действий.

+0

Спасибо за рекомендации. Очень полезно. –

Смежные вопросы