AND / OR / NOTの例(「thisAND」)のような論理演算子で終わるクエリはエラーになることに気づきました。さて、これを処理するための最良の方法は何でしょうか?それらの1つで終わるすべてのクエリを削除またはエスケープするだけですか?これらの単語のいずれかで始まるクエリでも発生することに注意してください。また、有効な名前がOregonORのようにそのような単語で終わる場合もあります。
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 をエスケープする場合は、2 つのバックスラッシュが必要になることに注意してください。
fulltext "Oregon \\OR"
于 2011-05-04T22:31:42.117 に答える