Classe de indexação com chave primária UUID com Sunspot Solr on Ruby on Rails

Maior dificuldade ao indexar classes com chaves primárias UUID com Sunspot Solr. Essencialmente porque inteiro ainda é considerado o tipo de dados para chaves primárias. Enquanto esse problema ainda está aberto https://github.com/sunspot/sunspot/issues/225 , temos que fazer uma solução rápida.

Agora já existe uma solicitação pull que pode (ainda não testei) resolver esse problema: https://github.com/sunspot/sunspot/pull/373

Mas, por enquanto, a solução alternativa sugerida por Tad ( https://github.com/rthbound ) funcionou para mim. Então é assim que funciona:

  1. Comente o bloco “pesquisável” em sua aula ou aulas.
  2. Reindexar, rake sunspot: solr: reindex
  3. Remova o comentário do bloco “pesquisável” em sua aula ou aulas.
  4. Vá para o console, trilhos c
  5. Execute, Sunspot.index (ModelClass.all); Sunspot.index! (ModelClass.last)

Saia do console e seu mecanismo de pesquisa deve funcionar. Agora, o maior revés disso é se você estiver executando em um servidor de produção com milhões de itens para indexar (eu pessoalmente não tentei isso, o último índice que fiz foi de apenas cerca de 2.000+).

As joias:
gem “sunspot rails”, “~> 2.0.0”
e
gem “sunspot
solr”, “~> 2.0.0” (no grupo de desenvolvimento)

Estou no Heroku (Cedar) com o complemento WebSolr.

ATUALIZAÇÃO 22/04/2014 A
atualização para “sunspot rails” e “sunspot solr” 2.1.0 resolve esse problema.

Parar solr via rake sunspot: solr: parar e reindexar por rake sunspot: solr: reindex

Além disso, adicione esta linha ao seu sunspot.yml: solr_home: solr

Colocado dentro da configuração de desenvolvimento, fica assim:

development:

solr
:

solr_home
: solr

hostname
: localhost

port
: 8982

log_level
: INFO