2014-01-19 2 views
5

Начиная с обновления Fall, GAE теперь поддерживает частичный поиск. В документации: «API поддерживает частичное соответствие текста по строковым полям».GAE Search API Теперь поддерживаем частичный поиск

Это, кажется, очень популярный запрос, на многих нитей: Partial matching GAE search API Does GAE Datastore support 'partial text search'?

Так что я бы предположить, поиск «Пыть» теперь будет возвращать «питона»

Кто-нибудь получил эту Работа? Не работает для меня. Мне любопытно, требуется ли какая-то настройка, например, для завершения.

+0

Вы когда-нибудь находили ответ? Я испытываю ту же проблему, все настроено, но реагирует только на полные матчи. –

+0

Никогда не получал ответа. Мне все еще интересно, что означает «Partial Matching» для Google. –

ответ

4

«API поддерживает частичное согласование текста по строковым полям» в https://cloud.google.com/appengine/docs/python/search/ относится к соответствию tokens. В частности, см https://cloud.google.com/appengine/docs/python/search/#Python_Tokenizing_string_fields ...:

строка разбивается на лексемы, где появляются пробелы или специальные символы ( знаки препинания, хэш-знак и т.д.). Индекс будет включает запись для каждого токена. Это позволяет вам искать ключевые слова и фразы , содержащие только часть значения поля.

Поэтому ваше предположение:

Так что я бы предположить, поиск «Пыть» теперь будет возвращать «питон»

является необоснованным - «частичным поиск» означает части из документа (подмножество маркеров в текстовом поле их), не мас.ч. каждый маркер (что приведет к комбинаторный взрыв, например, единственный маркер python должны быть проиндексированы, как каждый и каждый из записей:

p 
py 
pyt 
pyth 
pytho 
python 
y 
yt 
yth 
ytho 
ython 
t 
th 
tho 
thon 
h 
ho 
hon 
o 
on 
n 

Если вы хотите, что это достаточно легко, чтобы написать свой собственный код для создания взрыва (создание псевдо-документа со всеми этими подстроками из реального исходного документа), но для любого нетривиального исходного документа вы можете легко в конечном итоге либо заплатить за нелепый объем ресурсов, либо получить жесткий потолок абсолютных максимальных квот.

Подсказка: если вы выполните поиск в Интернете для «pyt», вы найдете документы, содержащие «python»? Попробуйте - первый дает 10 миллионов хитов (Молодежный театр полуострова, P.Y.T Майкла Джексона (Pretty Young Thing) и т. Д. И т. Д.), Последний - 180 миллионов хитов (язык, змея, комедийная группа :-).

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