我最初是在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
}
}
根据评论,“ 文本”字段在配置中保留在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_"}}]
答案 0 :(得分:0)
根据对我的问题的评论(我仍在学习solr):
尽管它们已经过时了很长时间,Solr仍然有 支持
[user@host dir]$ export TZ=EST+5EDT,M3.2.0,M11.1.0 [user@host dir]$ echo $TZ EST+5EDT,M3.2.0,M11.1.0 [user@host dir]$ ./test_tz TZ=EST+5EDT,M3.2.0,M11.1.0 2019-11-26T12:25:20-0500 2019-11-26T19:25:20+0200 2019-11-26T12:25:20-0500
的基于架构的配置 (由<defaultSearchField/>
参数取代)和df
(由<solrQueryParser defaultOperator="OR"/>
参数取代。如果在架构中指定了这些选项,则表示 鼓励将其替换为请求参数(或请求 参数默认值),因为将来可能会删除对它们的支持 Solr发布。
出于我们的目的,并且在使用edismax查询解析器时,我们需要指定要使用的查询字段。