В моем приложении GAE для python я разрешаю пользователям запрашивать элементы, используя api для поиска, где я изначально помещал документы с точными тегами, но хиты не так много, учитывая исправление заклинаний, которое должно присутствовать. То, что я нашел, это внедрение символьных ngrams через datastore, поскольку это гарантирует, что пользователь набирает по крайней мере часть слова правильно. В хранилище данных это занимает много времени. Например,Как реализовать пользовательскую проверку орфографии в API поиска GAE
"hello"
(разбивается) ["hello", "ello", "hell", "hel", "elo", "llo", "he", "el", "ll", "lo"]
и когда я искать "helo" tags -["hel", "elo", "he", "el", "lo"]
(дать положительный матч)
я ранжировать их по длине тегов совпавших от слова.
В хранилище данных, Я должен индексировать эти символы символов разрыва отдельно вместе с сущностями, которые они соответствуют. И для каждого слова выполняется поиск по каждому тегу аналогичным образом. Это занимает много времени.
Есть ли способ выполнить аналогичную операцию, используя поиск api. Учитывает ли MatchScore несколько полей «ИЛИ»? Ищете способы разработки поисковых документов и выполнения нескольких исправленных заклинаний запросов при минимальных операциях.
Если у меня есть несколько полей для языков в одном документе, как для eg.-
([tags - "hello world"] [rank - 2300] [partial tags - "hel", "ell", "llo", "wor", "orl", "rld", "hell", "ello", "worl", "orld"] [english - 1] [Spanish - 0] [French - 0] [German - 0]
Могу ли я выполнить операцию MatchScore вместе с рода на языковых полях? (каждый документ относится только к одному языку)
Я пробовал варианты 3+ и 4+, и он работает вяло, главным образом потому, что я не могу разграничить языки. Скажем, у меня есть испанский, итальянский, немецкий, французский и английский пользователи. Когда испанский пользователь ищет что-то, я хочу, чтобы он увидел результаты испанского языка, которые соответствуют его запросу, а затем английский или другие языки, возможно, и не будут выполнять строгую фильтрацию на испанском языке (как в случае с «типом» в search-api). Есть ли способ, которым я могу реализовать MatchScorer Наряду с полями Sort on language, которые могут иметь двоичное значение для каждого документа? – minocha
@minocha Я добавил примечание о том, как вы отмечаете язык поля или документа, после того как я заметил, как вы отметили свои поля образца в своем вопросе. Поскольку в моих приложениях (только немецкая аудитория) я работал с индексированием языковой агностики, я не уверен, как Search API будет обрабатывать результаты на разных языках, но я считаю, что он ведет себя так, как вы этого хотите. AFAIU, API поиска будет угадывать язык поискового термина, а затем применять правила магического языка для улучшения соответствия, но я не ожидаю, что API поиска будет игнорировать поля или документы в целом только из-за другого языка. – Ani