4

Я создал приложение google, используя следующий модуль db (ndb) для создания моих моделей. Теперь проблема заключается в том, что я хочу развернуть поиск по полям этих моделей, и я нашел два модуля для этого: 1. Официально поставляется с движком Google (appengine/google/ext/search) и 2. gae text search (http://code.google.com/p/gae-text-search/). Оба они предоставляют модель поиска для старых свойств модуля db. Есть ли способ сделать полнотекстовый поиск с помощью ndb и google app engine 1.6.2. Также я хочу сохранить эти поисковые запросы в хранилище данных, как я могу это достичь? Я использую python 2.7 для своего развития. Заранее спасибо.Полнотекстовый поиск с движком Google с использованием моделей ndb

ответ

1

Лучшее решение - дождаться полнотекстового поиска приложения. В настоящее время они находятся в фазе доверенных тестеров, так что это скоро. Если вы сейчас откажетесь от своего собственного решения, вы можете закончить его повторное использование через несколько месяцев.

+0

Любые ссылки на соответствующие информации? – MeLight

0

От: https://cloud.google.com/appengine/docs/python/search/

The Search API предоставляет модель для документов индексации, которые содержат структурированных данных. Вы можете найти индекс, а также организовать и представить результаты поиска . API поддерживает полное соответствие текста по строковым полям. Документы и индексы сохраняются в отдельном постоянном хранилище , оптимизированном для операций поиска. API поиска может индексировать любое число документов.

Выполнение поиска:

index.search("rose water") 

Индексация объект:

from datetime import datetime 
from google.appengine.api import search 

my_document = search.Document(
    fields=[ 
     search.TextField(name='customer', value='Joe Jackson'), 
     search.HtmlField(name='comment', value='this is <em>marked up</em> text'), 
     search.NumberField(name='number_of_visits', value=7), 
     search.DateField(name='last_visit', value=datetime.now()), 
     search.DateField(name='birthday', value=datetime(year=1960, month=6, day=19)), 
     search.GeoField(name='home_location', value=search.GeoPoint(37.619, -122.37)) 
     ]) 
Смежные вопросы