Hi,

I have two fields in the bean class, id and title.
After adding the bean to SOLR, I want to search for, say "kitten", in all
defined fields in the bean, like this -- query.setQuery( "kitten"); --
But I get results only when I affix the bean field name before the search
text like this -- query.setQuery( "title:kitten"); --

Same case even when I use SolrInputDocument, and add these fields.

Can we search text in all fields of a bean, without having to specify a
field?
If we can, what am I missing in my code?

*Code:*
Bean:
-----------------------------------
public class SOLRTitle {
@Field
public String id = "";
 @Field
public String title = "";
}
-----------------------------------
Indexing function:
-----------------------------------

private static void uploadData() {

try {
... // Get Titles
                        List<SOLRTitle> solrTitles = new
ArrayList<SOLRTitle>();
Iterator<Title> it = titles.iterator();
while(it.hasNext()) {
Title title = (Title) it.next();
SOLRTitle solrTitle = new SOLRTitle();
solrTitle.id = title.getID().toString();
solrTitle.title = title.getTitle();
solrTitles.add(solrTitle);
}
server.addBeans(solrTitles);
server.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
-----------------------------------
Querying function:
-----------------------------------

private static void queryData() {

try {
SolrQuery query = new SolrQuery();
query.setQuery( "kitten");

    QueryResponse rsp = server.query( query );
    List<SOLRTitle> beans = rsp.getBeans(SOLRTitle.class);
    System.out.println(beans.size());
    Iterator<SOLRTitle> it = beans.iterator();
    while(it.hasNext()) {
     SOLRTitle solrTitle = (SOLRTitle)it.next();
     System.out.println(solrTitle.id);
     System.out.println(solrTitle.title);
    }
} catch (SolrServerException e) {
e.printStackTrace();
}
}
--------------------------------------

Subhash Bhushan.

Reply via email to