Hi
A noobie question. I am uncertain what is the best way to design for my
requirement which the following.
I want to allow another client in solrj to query solr with a query that is
handled with a custom handler
localhost:9090/solr/tokenSearch?tokens{!dismax
qf=content}pear,apples,oyster,king kong&fl=score&rows=1000
i.e. a list of tokens (single word and phrases) is sent in one http call.
What I would like to do is to search over each individual token and compose a
single response back to the client
The current approach I have taken is to create a custom search handler as
follows
<requestHandler name="/tokenSearch" class="solr.SearchHandler">
<lst name="defaults">
<str name="defType">dismax</str>
</lst>
<arr name="components">
<str>myHandler</str>
</arr>
</requestHandler>
<searchComponent name="myHandler" class="com.a.RequestHandlers.myHandler"/>
myHandler (which extends SearchComponent) overrides prepare and process
methods, extracting and iterating over each token in the input. The problem I
am hitting in this design is that the prepare() method is passed a reference to
the SolrIndexSearcher in the ResponseBuilder parameter (so for efficiency
reasons i don't want to open up another server connection for the search). I
can construct a Lucene query and search just fine, but what i would like to do
is instead use the e/dismax queries (rather than construct my own - to reduce
errors). The getDocList() method of SolrIndexSearcher on the other hand
requires a lucene query object.
Is this an appropriate design for my requirement? And if so what is the best
way to send a SolrQuery to the SolrIndexSearcher?
Thank you
Peyman