我正在尝试使用solrj进行示例程序搜索。 我的代码如下 基本上我正在尝试搜索包含book_name字段中每个位置的单词。 当搜索多个单词时,我得到了例外
HttpSolrClient solr=new HttpSolrClient("http://localhost:8983/solr/Books");
System.out.println("here we go");
SolrQuery query = new SolrQuery();
query.setQuery("book_name:indian poems");
QueryResponse response=solr.query(query);
System.out.println(response.toString());
但它显示异常
Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/Books: undefined field text.
但是,如果我搜索一个单词,它的工作正常
答案 0 :(得分:0)
可能text
是您的默认搜索字段。
...取决于您的搜索处理程序配置:这可能适用于您的情况:如果您的搜索查询为book_name:indian poems
,则solr会在字段indian
中搜索单词book_name
,在默认搜索字段中搜索poems
- 具体取决于您的solr.xml
配置。
因此,如果您想在该字段中搜索这两个单词,则以下内容应该有效:
query.setQuery("book_name:indian book_name:poems");
另一个选项是,将默认搜索字段设置为book_name
,例如更改solr.xml
或为每个查询定义qf
参数。
我不熟悉solrj
,但这样的事情可以起作用:
query.set("qf", "book_name");