我正在使用 Sunspot Solr 搜索,它在大多数情况下都适用于基本搜索。它应该能够处理短语周围的引号,因此搜索test case
将返回带有测试和案例的文档,而搜索"test case"
应该返回带有短语测试用例的文档。
然而,我一直在努力解决这个问题,因为 Rails 似乎在用户输入进入搜索引擎之前就已经从用户输入中删除了任何外部引号。因此返回与但或(带有前导和尾随空格)实际工作"test case"
的完全相同的结果,在第一种情况下,因为外部引号被剥离而留下内部引号,而在第二种情况下,因为此问题仅影响前导和尾随引号分数。test case
""test case""
"test case"
显然,这是一个已知的错误,并且已被Rails 团队标记为不会修复。我真的很惊讶我在网上找不到这么少,因为它似乎是非常常见的功能。
人们如何解决这个问题?因此,要求用户双引号对我来说似乎不是一个合理的解决方案,而且我并不特别想对 Rack 进行自定义修改。