Using “terms” vs “select?qt=terms” in Solr

2019-05-05 18:21发布

问题:

I have difficulties with the "/terms" request handler using Solr 4.2.0.

Using the web browser the following url returns the list of terms of the fieldName INDUSTRY

http://localhost:8983/solr/collection1/terms?terms.fl=INDUSTRY&terms.prefix=P&terms=true

On the other hand, the following query returns no terms:

http://localhost:8983/solr/collection1/select?qt=terms&terms.fl=INDUSTRY&terms.prefix=P&terms=true

My question is how can I use the "/terms" requestHandler via the "/select" requestHandler?

The log from Solr is the following (if it is of any help to you)

Apr 12, 2013 10:21:55 AM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/terms params={terms.fl=INDUSTRY&terms=true&terms.prefix=P} status=0 QTime=5 
Apr 12, 2013 10:22:09 AM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/select params={terms.fl=INDUSTRY&terms=true&qt=terms&terms.prefix=P} hits=0 status=0 QTime=0 

回答1:

The following steps solve the above problem.

First, in solrconfig.xml you should remove the "/select" requestHandler and moreover set handleSelect to true.

  <requestDispatcher handleSelect="true" >

Second, reboot Solr and the following query works:

http://localhost:8983/solr/collection1/select?qt=/terms&terms.fl=INDUSTRY&terms.prefix=P&terms=true

IMPORTANT: notice the "/terms" on the qt parameter, using "qt=terms" will not work..



回答2:

In your requesthandler you can add this:

    <lst name="defaults">
         <bool name="terms">true</bool>
    </lst> 

    <arr name="last-components">
        <str>terms</str>
   </arr>

Now you can use the terms.fl to select the terms you want from the select requesthandler:

http://localhost:8983/solr/select?terms.fl=INDUSTRY



标签: solr