我想使用参数解引用,如下所述:
https://lucene.apache.org/solr/guide/8_1/local-parameters-in-queries.html
使用本地参数的示例对我不起作用,本地参数被解析为输入查询文本:
我的查询:
/solr/core/select?q={!dismax%20qf=name}blabla&debugQuery=true
解析的查询信息给我:
"rawquerystring": "{!dismax qf=name}blabla",
"querystring": "{!dismax qf=name}blabla",
"parsedquery": "+(DisjunctionMaxQuery(((name:dismax)^5.0 | description:dismax))
DisjunctionMaxQuery(((name:qf)^5.0 | description:qf)) DisjunctionMaxQuery(((name:name)^5.0 |
description:name)) DisjunctionMaxQuery(((name:blabla)^5.0 | description:blabla)))~4",
"parsedquery_toString": "+((((name:dismax)^5.0 | description:dismax) ((name:qf)^5.0 |
description:qf) ((name:name)^5.0 | description:name) ((name:blabla)^5.0 |
description:blabla))~4)",
"explain": {},
...
我使用edismax
作为默认查询解析器,而我的默认qf
是name^5 description
我尝试使用其他查询解析器,并且总是发生相同的情况。有想法吗?
答案 0 :(得分:1)
在q
设置为解析器的情况下,不能直接在edismax
中使用localparams。 edismax
查询解析器does not support this since 7.2。
从7.2开始,只有defType为lucene或lucene时,才能使用某些localparams。 功能lucene解析器是默认设置。由于您已更改defType 到edismax,localparams将不起作用。
我不确定为什么在示例中仍然需要localparams,因为您可以直接将qf=name
添加到您的URL中?