websolr正在返回
RSolr::Error::Http - 400 Bad Request
Error: <html><head><title>Apache Tomcat/6.0.28 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 400 - org.apache.lucene.queryParser.ParseException: Cannot parse '----': Encountered " "-" "- "" at line 1, column 1.
Was expecting one of:
"(" ...
"*" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
"[" ...
"{" ...
<NUMBER> ...当您尝试搜索"-“字符时。
其他特殊字符工作正常,如":“等,我曾尝试使用CGI.escape,但它无法对这些字符进行转义。
发布于 2012-04-03 14:48:48
你有没有试过用反斜杠转义它?
通常,当您为文档编制索引时,记号赋予器将自行删除破折号字符,因此您可能希望去掉破折号,除非您希望它是一个否定查询。
完整的Solr查询语法如下:http://wiki.apache.org/solr/SolrQuerySyntax
发布于 2012-04-27 01:32:59
正如Chris正确指出的那样,您需要转义反斜杠。
根据您使用的查询解析器,有一些特殊的字符是有意义的。在撰写本文时,Lucene (以及Solr)查询解析器为这些字符赋予了特殊的含义:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \您应该参考Lucene query parser syntax的文档,了解它们的完整含义。默认的Solr查询解析器提供了Lucene查询解析器语法的超集,如SolrQueryParser维基页面所述。
如果您不想担心转义,那么DisMax Query Parser被设计为接受与用户在搜索框中键入的内容更接近的输入。我最近没有针对它测试各种特殊的,但作为规则,它可能在它接受的输入中更优雅。
https://stackoverflow.com/questions/9976346
复制相似问题