Reputation: 32071
In Solr 4, I see that we've configured the default field "df" in the /select
request handler:
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">id</str>
But id
is our unique document field, so all queries are defaulting to "id:my_query", which always returns 0 results.
How do I define which fields should be queried by default?
This is an upgrade from v3 to v4 and this part of it seems to have been broken along the way.
Upvotes: 5
Views: 9090
Reputation: 21
you can use edismax search.
See https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+Parser
Check the qf(query field) parameter. You can pass multiple fields to it
Upvotes: 2
Reputation: 665
You can use a copy field named "text", copy all your searchable fields into this field and specify it as default search field.
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
You can add fields to be copied to a copy field as follows:
<copyField source="field1" dest="text"/>
<copyField source="field2" dest="text"/>
...
<copyField source="fieldn" dest="text"/>
Note that "text" is the copy field here.
Upvotes: 10