Sunspot Solr соответствует одному объекту - PullRequest
0 голосов
/ 12 октября 2010

Я использую самоцвет Sunspot в своем приложении RoR для поиска по модели Post, и он отлично работает для этого. Тем не менее, мне нужно использовать его алгоритм сопоставления с одним пост-объектом.

Например, я могу искать все сообщения, как это:

Sunspot.search Post do
  ...
end

Но мне нужно выполнить поиск по одному объекту записи, например:

Sunspot.search @post do
  ...
end

Возможно ли это?

Я хочу использовать один и тот же алгоритм сопоставления для одного объекта записи, чтобы проверить, соответствует он или нет.

Ответы [ 2 ]

0 голосов
/ 22 октября 2010

Я не совсем уверен, как это сделать с помощью sunspot, но одну вещь, которую вы можете попробовать, - это напрямую запросить RSolr, передать идентификатор модели, которую вы хотите проверить, в: fq, и посмотреть, возвращает ли онарезультат или нет.Должен возвращаться довольно быстро из-за запроса фильтра:

solr = RSolr.connect(:url => Sunspot.session.config.solr.url)
solr.select :q => solr_query, :fq => ['type:Post', "id:#{@post.id}"]
0 голосов
/ 12 октября 2010

Я не думаю, что это возможно. Это Solr и Lucene, а не Sunspot, у которых есть все алгоритмы, которые определяют, является ли что-то совпадением или нет для любого данного запроса. Клиенты Solr просто создают параметры запроса и передают их в Solr, а затем анализируют результаты Solr.

...