
goodieboy at gmail
Oct 6, 2008, 1:19 PM
Post #4 of 6
(1980 views)
Permalink
|
Awesome, thanks Erik! I really like the idea of bypassing SolrQuery, and just using a straight up Hash. It'll be even easier to keep the API consistent between jruby and standard ruby now. On Mon, Oct 6, 2008 at 3:59 PM, Erik Hatcher <erik[at]ehatchersolutions.com>wrote: > Unfortunately, to call varargs from JRuby (so I just learned from irc's > #jruby), you have to do this: > > query.add_facet_field(['cat'].to_java :string) > > anyway, for our solr-jruby purposes, i think we can stick to using the > ModifiableSolrParams API instead of SolrQuery, but we still get varargs > issues. > > thankfully Ruby solves this relatively nicely... > > solr = EmbeddedSolrServer.new(container, "core1") > query = ModifiableSolrParams.new > def query.abcd(key, values) > add(key,(values.is_a?(Array) ? values : [values]).to_java(:string)) > end > query.abcd('q','*:*') > query.abcd('facet.field',['cat']) > response = solr.query(query) > > We'll just need to sprinkle a little Ruby fairy dust on some of this clunky > stuff. It's not all that bad. But the varargs one is strange to me, but > I'm sure there is some deep technical reason why that support isn't > intuitive. > > Erik > > > > On Oct 6, 2008, at 1:36 AM, Ryan McKinley wrote: > > just guessing, but try passing that as a string[] rather then just a >> string >> >> The java function takes ( string ... v ) -- in java that means you can >> pass either a string or an array, or a variable length list of strings. I'm >> guessing that does something funny with jruby >> >> ryan >> >> >> On Oct 5, 2008, at 10:54 PM, Matt Mitchell wrote: >> >> I've been messing around with jRuby and SolrJ with nice results. But >>> can't >>> seem to get the SolrQuery.addFacetField method to work. I get this error: >>> >>> "for method addFacetField expected [[Ljava.lang.String;]; got: >>> [java.lang.String]; error: argument type mismatch (TypeError)" >>> >>> I'm using it like: >>> >>> query.add_facet_field 'cat' >>> >>> and also tried: >>> >>> query.addFacetField 'cat' >>> >>> Any ideas as to what I'm doing wrong? >>> >>> Matt >>> >>> p.s. The other methods I've tried work great: set_query, set_query_type, >>> set_facet, set_facet_limit, set_facet_min_count, set_include_score, >>> add_sort_field. >>> >> >
|