how can I tell if an document has been indexed from rsolr?

25 views
Skip to first unread message

jason

unread,
Nov 15, 2010, 4:16:13 PM11/15/10
to rsolr
I am trying to find out which docs are indexed for debugging reasons.
I am trying:
connection.get('select',:params => {:id => 1081})

I have the id of the document, how would I do this ?

matt mitchell

unread,
Nov 15, 2010, 4:29:34 PM11/15/10
to rsolr
Hi Jason,

You could do something like:

response = connection.select :params => {:q => "id:1081"}
docs = response["response"]["docs"]

The :q is the standard "q" solr param, so anything that's a valid solr
query can go there.

Matt

jason

unread,
Nov 15, 2010, 9:38:05 PM11/15/10
to rsolr
Hi Matt, am I doing something else wrong? I tried your method and I
got:
r = c.select :params => {:q => "id:1081"}
Not sure if its relevent, but I get rsolr through sunspot like this:
Sunspot::Session.new.send(:connection)
Which give me a class of: RSolr::Client
I am also able to index docs, so I do have a working connection, not
sure what is wrong.
RSolr::RequestError: Solr Response:
null__javalangNullPointerException__at_javaioStringReaderinitStringReaderjava33__at_orgapachelucenequeryParserQueryParserparseQueryParserjava197__at_orgapachesolrsearchLuceneQParserparseLuceneQParserPluginjava78__at_orgapachesolrsearchQParsergetQueryQParserjava131__at_orgapachesolrhandlercomponentQueryComponentprepareQueryComponentjava89__at_orgapachesolrhandlercomponentSearchHandlerhandleRequestBodySearchHandlerjava174__at_orgapachesolrhandlerRequestHandlerBasehandleRequestRequestHandlerBasejava131__at_orgapachesolrcoreSolrCoreexecuteSolrCorejava1316__at_orgapachesolrservletSolrDispatchFilterexecuteSolrDispatchFilterjava338__at_orgapachesolrservletSolrDispatchFilterdoFilterSolrDispatchFilterjava241__at_orgmortbayjettyservletServletHandler
$CachedChaindoFilterServletHandlerjava1089__at_orgmortbayjettyservletServletHandlerhandleServletHandlerjava365__at_orgmortbayjettysecuritySecurityHandlerhandleSecurityHandlerjava216__at_orgmortbayjettyservletSessionHandlerhandleSessionHandlerjava181__at_orgmortbayjettyhandlerContextHandlerhandleContextHandlerjava712__at_orgmortbayjettywebappWebAppContexthandleWebAppContextjava405__at_orgmortbayjettyhandlerContextHandlerCollectionhandleContextHandlerCollectionjava211__at_orgmortbayjettyhandlerHandlerCollectionhandleHandlerCollectionjava114__at_orgmortbayjettyhandlerHandlerWrapperhandleHandlerWrapperjava139__at_orgmortbayjettyServerhandleServerjava285__at_orgmortbayjettyHttpConnectionhandleRequestHttpConnectionjava502__at_orgmortbayjettyHttpConnection
$RequestHandlerheaderCompleteHttpConnectionjava821__at_orgmortbayjettyHttpParserparseNextHttpParserjava513__at_orgmortbayjettyHttpParserparseAvailableHttpParserjava208__at_orgmortbayjettyHttpConnectionhandleHttpConnectionjava378__at_orgmortbayjettybioSocketConnector
$ConnectionrunSocketConnectorjava226__at_o
from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
rsolr/connection/requestable.rb:39:in `request'
from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
rsolr/client.rb:34:in `request'
from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
rsolr/client.rb:16:in `method_missing'



I know I have a server running because I can see "welcome to solr" at
http://127.0.0.1:8983/solr/ in the browser.

matt mitchell

unread,
Nov 15, 2010, 10:50:13 PM11/15/10
to rsolr
Ahh OK, you're using RSolr 0.12.1 and you probably read the docs on
github/master, which are for the 1.0 beta release. So the only thing
you need to do is not use the :params key, and instead do:

r = c.select :q => "id:1081"

Give that a shot and see what happens.

Matt

On Nov 15, 9:38 pm, jason <ja...@sanbit.com> wrote:
> Hi Matt, am I doing something else wrong? I tried your method and  I
> got:
>  r = c.select :params => {:q => "id:1081"}
> Not sure if its relevent, but I get rsolr through sunspot like this:
> Sunspot::Session.new.send(:connection)
> Which give me a class of:  RSolr::Client
> I am also able to index docs, so I do have a working connection, not
> sure what is wrong.
> RSolr::RequestError: Solr Response:
> null__javalangNullPointerException__at_javaioStringReaderinitStringReaderja va33__at_orgapachelucenequeryParserQueryParserparseQueryParserjava197__at_o rgapachesolrsearchLuceneQParserparseLuceneQParserPluginjava78__at_orgapache solrsearchQParsergetQueryQParserjava131__at_orgapachesolrhandlercomponentQu eryComponentprepareQueryComponentjava89__at_orgapachesolrhandlercomponentSe archHandlerhandleRequestBodySearchHandlerjava174__at_orgapachesolrhandlerRe questHandlerBasehandleRequestRequestHandlerBasejava131__at_orgapachesolrcor eSolrCoreexecuteSolrCorejava1316__at_orgapachesolrservletSolrDispatchFilter executeSolrDispatchFilterjava338__at_orgapachesolrservletSolrDispatchFilter doFilterSolrDispatchFilterjava241__at_orgmortbayjettyservletServletHandler
> $CachedChaindoFilterServletHandlerjava1089__at_orgmortbayjettyservletServle tHandlerhandleServletHandlerjava365__at_orgmortbayjettysecuritySecurityHand lerhandleSecurityHandlerjava216__at_orgmortbayjettyservletSessionHandlerhan dleSessionHandlerjava181__at_orgmortbayjettyhandlerContextHandlerhandleCont extHandlerjava712__at_orgmortbayjettywebappWebAppContexthandleWebAppContext java405__at_orgmortbayjettyhandlerContextHandlerCollectionhandleContextHand lerCollectionjava211__at_orgmortbayjettyhandlerHandlerCollectionhandleHandl erCollectionjava114__at_orgmortbayjettyhandlerHandlerWrapperhandleHandlerWr apperjava139__at_orgmortbayjettyServerhandleServerjava285__at_orgmortbayjet tyHttpConnectionhandleRequestHttpConnectionjava502__at_orgmortbayjettyHttpC onnection
> $RequestHandlerheaderCompleteHttpConnectionjava821__at_orgmortbayjettyHttpP arserparseNextHttpParserjava513__at_orgmortbayjettyHttpParserparseAvailable HttpParserjava208__at_orgmortbayjettyHttpConnectionhandleHttpConnectionjava 378__at_orgmortbayjettybioSocketConnector
> $ConnectionrunSocketConnectorjava226__at_o
>         from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
> rsolr/connection/requestable.rb:39:in `request'
>         from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
> rsolr/client.rb:34:in `request'
>         from /Users/jtoy/.rvm/gems/ruby-1.9.2-p0/gems/rsolr-0.12.1/lib/
> rsolr/client.rb:16:in `method_missing'
>
> I know I have a server running because I can see "welcome to solr" athttp://127.0.0.1:8983/solr/in the browser.

jason

unread,
Nov 16, 2010, 10:27:05 AM11/16/10
to rsolr
Matt, perfect, that worked!
> > I know I have a server running because I can see "welcome to solr" athttp://127.0.0.1:8983/solr/inthe browser.

jason

unread,
Nov 16, 2010, 11:08:02 AM11/16/10
to rsolr
Hi Matt, I think I ran into another issue. I've checked a bunch of
docs which I think should be indexed, but they all return false.

I think its because I have never declared id as field to index so
maybe solr doesn't actually call its internal id column "id". I want
to query based on the id that solr is using, so I didn't think I was
supposed to index the id explicitly in my sunspot configuration.

Couple of questions, how can I see the meta data about the system such
as how many items are indexed in total? Is there a way I can see what
fields I can query against? So is id the field I should be querying
against? Solr is still a blackbox to me, I'm still learning it , all
my current interactions with it have been through rsolr and sunspot.

This is what my sunspot configuration looks like:


Sunspot.setup(User) do
text :name
text :login
text :description
string :login

string :all_lists, :multiple => true do
titles_from_lists.map{|l| l.split(/-|_|\//)}.flatten
end
text :all_lists do
titles_from_lists.map{|l| l.split(/-|_|\//)}.flatten
end

dynamic_string :lists do
#dynamic_text :lists do
count = 0 #count is used so there are no name collisions
#lists.inject({}) do |hash, l|
titles_from_lists.inject({}) do |hash, l|
data = l.split('/',6)
hash["#{count}_#{data[5]}".to_sym] = {
:value => "#{data[5]} #{data[6]}",
#:boost => data[2] == 0 ? 1 : data[2]
:boost => 1
}
count += 1
hash
end
end
end
> > I know I have a server running because I can see "welcome to solr" athttp://127.0.0.1:8983/solr/inthe browser.

Mat Brown

unread,
Nov 16, 2010, 11:47:36 AM11/16/10
to rs...@googlegroups.com
Hi Jason,

Sunspot's IDs are of the form "#{model_name} #{primary_key}"

so, a Post with id 2 would be indexed with the ID "Post 2"

Mat

> --
> You received this message because you are subscribed to the Google Groups "rsolr" group.
> To post to this group, send email to rs...@googlegroups.com.
> To unsubscribe from this group, send email to rsolr+un...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rsolr?hl=en.
>
>

jason

unread,
Nov 16, 2010, 3:55:28 PM11/16/10
to rsolr
thanks, this is what worked for me: c.select(:q => "id: \"#{model_name}
\" #{sid}\"")
Reply all
Reply to author
Forward
0 new messages