我注意到以 AND/OR/NOT 示例('this AND')之类的逻辑运算符结尾的查询将导致错误。现在处理这个问题的最佳方法是什么?只是修剪或逃避所有以其中之一结尾的查询?请注意,以这些单词之一开头的查询也会发生这种情况。有时,有效名称以此类词结尾,例如 Oregon OR。
问问题
1288 次
1 回答
6
我相信在您的查询中转义任何不属于布尔逻辑的 AND/OR/NOT 实例将是您最好的选择:
Article.search do
fulltext 'Oregon OR'
end
# => Throws error along the lines of this:
# RSolr::RequestError: Solr Response: orgapachelucenequeryParserParseException_Cannot_parse_Oregon_OR_Encountered_EOF_at_line_1_column_9_Was_expecting_one_of_____NOT______________________________QUOTED______TERM______PREFIXTERM______WILDTERM__________________NUMBER______TERM____________
Article.search do
fulltext 'Oregon \OR'
end
# => Returns results with "Oregon OR"
请记住,在双引号字符串中转义 AND/OR/NOT 时,您需要两个反斜杠:
fulltext "Oregon \\OR"
于 2011-05-04T22:31:42.117 回答