我想在这里使用参数取消引用来解释:
使用本地参数的示例对我无效,本地参数被解析为输入查询文本:
我的问题是:
/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。
我尝试过使用其他查询解析器,而且总是发生同样的情况。有什么想法吗?
发布于 2019-11-27 13:28:22
不能在q中直接使用edismax设置为解析器的localparams。edismax查询解析器不支持这一点,因为7.2。
从7.2开始,只有当defType是lucene或func时,才能使用某些本地参数。lucene解析器是默认的。由于您已将defType更改为edismax,本地参数将无法工作。
我不知道为什么您需要在您的例子中的本地参数,因为您可以直接添加qf=name到您的URL?
https://stackoverflow.com/questions/59065903
复制相似问题