Поиск по нескольким словам приводит к взрыву индексов? - PullRequest
2 голосов
/ 18 октября 2010

Я пытаюсь включить поиск по нескольким словам с помощью Google App Engine.Однако в журнале появляется сообщение об ошибке:

The index for this query is not ready to serve. See the Datastore Indexes page in the Admin Console.
This query needs this index:
- kind: A
  properties:
  - name: __searchable_text_index
  - name: __searchable_text_index
  - name: published
  - name: modified
    direction: desc

Фактический запрос, который я выполняю:

entities = A.all().filter("modified >", timeline).filter("published =", True).filter("modified <=", bookmark ).order("-modified").search(self.request.get('q')).fetch(PAGESIZE+1) 

Он работает с одним словом, но для фраз с 2 или более словами не получается,Ты хоть представляешь, как мне это сделать?Спасибо

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

Да, это приводит к «взрывному» индексу, потому что количество записей индекса пропорционально квадрату количества слов в списке сущности.

Если вы отбросите фильтры порядка и неравенства, ваш запрос будет удовлетворен с помощью встроенной стратегии объединения слиянием, и вы сможете отсортировать результаты в памяти.

0 голосов
/ 07 августа 2012

Я решил подождать, пока Google предложит услугу полнотекстового поиска, которую они наконец-то получили. По-прежнему стремится узнать, насколько хорошо он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...