Thanks Erik. That's what I did in the end and it works great. I thought I'd
need to create a custom response to remove unnecessary fields but was able
to make the request return pretty much only what I need, even adding
omitHeader=true. I'm using the EdgeNGramFilterFactory during indexing on
the title field, and then returning the just the title on the matching set.

For example, a call to http://localhost:8983/solr/movies/suggest_movie?q=sav,
will return:

{
    "response": {
        "numFound": 2,
        "start": 0,
        "docs": [
            {
                "title": "Saving Private Ryan"
            },
            {
                "title": "Into the Breach: 'Saving Private Ryan'"
            }
        ]
    }
}

Thanks for your help!

Ryan




On Sun Dec 07 2014 at 7:14:23 AM Erik Hatcher <erik.hatc...@gmail.com>
wrote:

> I wouldn’t personally do anything custom for JSON - but rather just pull
> out what you need client-side (and make the request such that it doesn’t
> return more than you need).  Doing a custom JSON format for this would
> limit your later flexibility in case you wanted to get different pieces of
> the response, possibly.   Also, if you had your own custom JSON format
> writer it could become problematic later on if Solr’s internal APIs changed
> and you needed to upgrade (or worse, maintain multiple versions).
>
>         Erik
>
> > On Dec 6, 2014, at 5:13 PM, Ryan Yacyshyn <ryan.yacys...@gmail.com>
> wrote:
> >
> > Hi Erik,
> >
> > Wow that's great. Thanks for the explanation, I tried using the
> > VelocityResponseWriter with your template provided and it worked as
> > expected, makes sense!
> >
> > What if I want to return a custom JSON response back, rather than HTML
> for
> > auto-suggesting? I'm thinking about using Twitter's typeahead jQuery
> plugin
> > <https://twitter.github.io/typeahead.js/examples/#custom-templates <
> https://twitter.github.io/typeahead.js/examples/#custom-templates>> and
> > passing it JSON, and have a template on the front-end to the autosuggest.
> >
> > Ryan
> >
> >
> >
> > On Sat Dec 06 2014 at 3:41:38 AM Erik Hatcher <erik.hatc...@gmail.com
> <mailto:erik.hatc...@gmail.com>>
> > wrote:
> >
> >> Ryan - I just pulled Taming Text off my shelf and refreshed my memory of
> >> this custom response writer.
> >>
> >> While having a custom writer is a neat example, it’s unnecessary for
> that
> >> particular functionality.  Solr has a built-in templatable response
> writer,
> >> the VelocityResponseWriter.  You can see it in action for a similar
> suggest
> >> feature in Solr’s example /browse interface (type “ip” and wait a
> second in
> >> the /browse UI with the sample data indexed).  In there is a little bit
> of
> >> jQuery autocomplete plugin usage that calls back to the /terms handler,
> >> using a suggest.vm template (in conf/velocity).  The difference with the
> >> Taming Text example is that it is returns stored fields of a standard
> >> search rather than just raw terms; with a little adjustment you can get
> >> basically the same thing as TT.  Leveraging the Solr example (v4.10.2
> for
> >> me here), I created a conf/velocity/typeahead.vm:
> >>
> >>  <ul>
> >>    #foreach($doc in $response.results)
> >>      <li>$doc.name</li>
> >>    #end
> >>  </ul>
> >>
> >> (the docs in the example data have a ‘name’ field)
> >>
> >> This request  http://localhost:8983/solr/collection1/select?q=name%
> >> 3Aip*&wt=velocity&v.template=typeahead <http://localhost:8983/solr/ <
> http://localhost:8983/solr/>
> >> collection1/select?q=name:ip*&wt=velocity&v.template=typeahead> results
> >> in this response:
> >>
> >>  <ul>
> >>      <li>Belkin Mobile Power Cord for iPod w/ Dock</li>
> >>      <li>iPod & iPod Mini USB 2.0 Cable</li>
> >>      <li>Apple 60 GB iPod with Video Playback Black</li>
> >>  </ul>
> >>
> >>        Erik
> >>
> >>
> >>> On Dec 6, 2014, at 2:24 AM, Ryan Yacyshyn <ryan.yacys...@gmail.com>
> >> wrote:
> >>>
> >>> Hey Everyone,
> >>>
> >>> I'm a little stuck on building a custom query response writer. I want
> to
> >>> create a response writer similar to the one explained in the book,
> Taming
> >>> Text, on the TypeAheadResponseWriter. I know I need to implement the
> >>> QueryResponseWriter, but I'm not sure where to find the Solr JAR files
> I
> >>> need to include. Where can I find these?
> >>>
> >>> Thanks,
> >>> Ryan
>
>

Reply via email to