Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SolrJ solr查询布尔参数获取未定义字段异常_Solr_Solrj_Solr4 - Fatal编程技术网

SolrJ solr查询布尔参数获取未定义字段异常

SolrJ solr查询布尔参数获取未定义字段异常,solr,solrj,solr4,Solr,Solrj,Solr4,嗨,我正在使用SLORJAPI查询solr索引。但当我将以下查询添加到SolrQuery对象时,我遇到了一些异常 当我在浏览器中运行以下查询时,它工作正常 它工作得很好,但当我使用SolrQuery运行相同的查询时,我得到以下异常 SolrQuery solrQuery = new SolrQuery(); solrQuery.set("q", "fkey:book+OR+bookstore+AND+whword:what"); solrQuery.set("fl", "fanswer");

嗨,我正在使用SLORJAPI查询solr索引。但当我将以下查询添加到SolrQuery对象时,我遇到了一些异常

当我在浏览器中运行以下查询时,它工作正常 它工作得很好,但当我使用SolrQuery运行相同的查询时,我得到以下异常

SolrQuery solrQuery = new SolrQuery();
solrQuery.set("q", "fkey:book+OR+bookstore+AND+whword:what");
solrQuery.set("fl", "fanswer");
例外情况-

org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/hellosolr: org.apache.solr.search.SyntaxError: Cannot parse 'fkey:book+OR+bookstore+AND+whword:what': Encountered " ":" ": "" at line 1, column 39.
Was expecting one of:
    <EOF> 
    <AND> ...
    <OR> ...
    <NOT> ...
    "+" ...
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:位于的服务器出错http://localhost:8983/solr/hellosolr: org.apache.solr.search.SyntaxError:无法分析'fkey:book+或+bookstore+和+whword:what':在第1行第39列遇到“”:“”:。
我期待的是:
...
...
...
"+" ...

请告诉我如何使用SolrQuery java api编写上述html查询。

您的错误消息是语法错误。拿出+符号

对于异常,请改为尝试此查询:

(fkey:book或fkey:bookstore)和whword:what

或者你可以这样写(注意括号):

(fkey:book bookstore)和whword:what

如果您已将或定义为默认值,那么Solr将为您在book和bookstore之间插入它。否则它将执行AND。我相信还是默认的。请检查您的
solrconfig.xml
以确保

如果没有在搜索词前面指定字段,Solr将使用默认字段(例如,在我的版本中是
text
)。如果Solr找不到它,您将得到
未定义字段[name]
错误

现在,我不知道为什么您的错误查询在管理面板上工作,但这应该可以解决您的SolrJ问题

假设您正在使用
/select
处理程序,您可以转到
solrconfig.xml
并更改默认值:

<requestHandler name="/select" class="solr.SearchHandler">
    <lst name="defaults">
    <str name="echoParams">explicit</str>
    <int name="rows">10</int>
    <str name="df">blah</str>
</lst>

明确的
10
废话

当我在SolrQuery对象SolrQuery.set(“defType”、“dismax”)中设置查询解析器时,这个错误得到了解决;但我还有一些查询,我正在solr上做一些poc,为了使用xml文件上传文档,我还没有创建schema.xml并在其中定义字段。我们是否需要创建schema.xml并定义字段将数据索引到solr中。?请检查我关于添加字段的另一个问题