Mailing List Archive

ruby/json response for spellcheck component
Hi,

I'm working on a patch to support the new SpellCheckComponent in solr-ruby.
I see that the response in some cases has duplicate keys. Here is an
example:

'suggestions'=>[

'buk',{'numFound'=>5,'startOffset'=>0,'endOffset'=>3,'origFreq'=>0,'suggestion'=>{'frequency'=>27,'word'=>'bul'},'suggestion'=>{'frequency'=>5,'word'=>'bus'},'suggestion'=>{'frequency'=>3,'word'=>'bok'},'suggestion'=>{'frequency'=>3,'word'=>'buy'},'suggestion'=>{'frequency'=>2,'word'=>'bulk'}},

'bot',{'numFound'=>5,'startOffset'=>4,'endOffset'=>7,'origFreq'=>1,'suggestion'=>{'frequency'=>57,'word'=>'box'},'suggestion'=>{'frequency'=>20,'word'=>'tot'},'suggestion'=>{'frequency'=>20,'word'=>'both'},'suggestion'=>{'frequency'=>18,'word'=>'boy'},'suggestion'=>{'frequency'=>7,'word'=>'mot'}},
'correctlySpelled',false,
'collation','bul box'
]

When this is eval'd in Ruby, only the last instance of a duplicate key
(suggestion) makes it (maybe I'm completely missing something though) - Was
this the desired format and if so, anyone have any ideas on how to handle
this sort of thing? I'd vote for changing 'suggestion'=>{} to
'suggestions'=>[{},{}] etc..

Also, a possible gotcha for this format is... what if one of your terms was
'suggestion' or 'collation'? The spellcheck response fields are mixed right
in with the terms. What about having a separate key called 'terms':

'suggestions'=>[
'collation', 'bul box',
'correctlySpelled',false,
'terms',[
'buk', {'numFound'=>5, 'suggestions'=>[{},{}]},
'bot', {'numFound'=>5m 'suggestions'=>[{},{}]}
]
]

etc..

Matt