【发布时间】:2020-03-21 11:36:07
【问题描述】:
我最初在我的 solr 架构中创建了 3 个复制字段:
curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field": {"source":"company_name","dest":"_text_"}}' http://my-instance/solr/listing/schema
curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field": {"source":"address","dest":"_text_"}}' http://my-instance/solr/listing/schema
curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field": {"source":"city","dest":"_text_"}}' http://my-instance/solr/listing/schema
但是,我最近从架构中删除了这些,现在正在以稍微不同的格式编写查询。更高级的查询我们需要edismax。
但是,即使打开 edismax,我也会收到来自 solr 查询解析器的错误,如下所示。我是否通过删除复制字段破坏了某些内容?
/solr/listing/select?debugQuery=on&defType=edismax&q=%3A&stopwords=true
{
"responseHeader": {
"zkConnected": true,
"status": 400,
"QTime": 1,
"params": {
"q": "*:*",
"defType": "edismax",
"debugQuery": "on",
"stopwords": "true"
}
},
"error": {
"metadata": [
"error-class",
"org.apache.solr.common.SolrException",
"root-error-class",
"org.apache.solr.common.SolrException"
],
"msg": "org.apache.solr.search.SyntaxError: Query Field '_text_' is not a valid field name",
"code": 400
}
}
根据 cmets,'text' 字段保留在配置中的 3 个位置:
"/update/extract":{
"startup":"lazy",
"name":"/update/extract",
"class":"solr.extraction.ExtractingRequestHandler",
"defaults":{
"lowernames":"true",
"fmap.content":"_text_"}}
"spellchecker":{
"name":"default",
"field":"_text_",
"initParams":[{
"path":"/update/**,/query,/select,/tvrh,/elevate,/spell,/browse",
"defaults":{"df":"_text_"}}]
【问题讨论】:
-
您是否还定义了默认搜索字段? Default Search Field & Query Operator
-
另外 - 检查
solrconfig.xml中的请求处理程序的配置(或通过 API)。默认情况下,配置可能将_text_设置为df或qf。