2

我正在通过 Scorched 使用 Django 查询 Solr 5.3 实例。只要我不问完全匹配的查询,这一切都很好。换句话说,

q=something something else

返回与以下内容完全相同的结果:

q="something something else"

据我所知,罪魁祸首是 Django 向 Solr 抛出的实际查询。事实上,对于第二种情况,这是:

q=\"something\+something\+else\"

所以,换句话说,“ 字符被转义了。我是对的吗?我如何告诉 Solr 当我在双引号之间查询某些内容时,我想要一个完全匹配?

在 Solr 管理网页中,一切正常,即如果我搜索“其他东西”,我会得到正确的结果。

我不确定这是否是烧焦/晒伤问题。它是否与过滤器/标记器有关(例如 solr.MappingCharFilterFactory)?

谢谢

4

1 回答 1

0

我在 Github 上从 Scorched 的人那里收到了这个:

from scorched.strings import DismaxString ... solr.query(q=DismaxString('"something something else"')

Scorched 不会转义 DismaxString 中的任何字符....

希望它可以帮助其他人。

于 2017-05-12T11:50:11.227 回答