Для выполнения импорта Tire (клиентуasticsearch) нужно разбить на страницы, как мне это сделать с пользовательской моделью? - PullRequest
0 голосов
/ 24 января 2012

Если у меня есть простой класс, такой как:

class Article
  include Tire::Model::Persistence

  property :title,        :analyzer => 'snowball'
  property :published_on, :type => 'date'
  property :tags,         :default => [], :analyzer => 'keyword'

end

Кажется, что я могу выполнить Article.import только при наличии метода разбиения на страницы.Но поскольку это пользовательская постоянная модель, и я не использую ActiveRecord, я не могу использовать WillPaginate или Kaminari.Так есть ли какой-нибудь специальный метод, который я могу создать для поддержки нумерации страниц, и если да, то каким требованиям он должен соответствовать?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2013

Я также использовал mongoid и обнаружил, что мне нужно требовать 'will_paginate / array' в моей среде .rb для получения записей. Я не думаю, что вам нужно использовать его после этого, но will_paginate поможет с процессом импорта.

0 голосов
/ 24 января 2012

Глядя на метод импорта (https://github.com/karmi/tire/blob/master/lib/tire/index.rb#L103-124) выглядит так, что есть два варианта.

  • Создайте метод разбивки на страницы, который получает параметры per_page и page в хэше параметров.
  • Создать перечислитель карты, который возвращает все документы.

Затем, глядя на bulk_store https://github.com/karmi/tire/blob/master/lib/tire/index.rb#L67-79, вы удовлетворяете некоторым другим требованиям для самого документа. Посмотри методы https://github.com/karmi/tire/blob/master/lib/tire/index.rb#L67-79

...