这与从输入String中删除所有特殊字符略有不同。我只是想让它们成为现实。例如:
查询:Haha和LaLa将被标记为
1. Haha
2. And
3. LaLa
不
1. Haha
2. LaLa
并使用相同的逻辑,输入一个特殊字符,例如:
`! , . : ; OR NOT < >`
将是......自己(不是逻辑构造函数,如果在数据库中存在这样的名称,查询将返回结果)
答案 0 :(得分:1)
您可以使用字段或原始查询解析器搜索您键入的查询字符串,而无需进行任何分析或转换。
q = {!field f='title'} Haha AND LaLa
[<强>调试 - 响应强>
<lst name="debug">
<str name="rawquerystring">{!field f='title'}Haha AND LaLa</str>
<str name="querystring">{!field f='title'}Haha AND LaLa</str>
<str name="parsedquery">title:Haha AND LaLa</str>
<str name="parsedquery_toString">title:Haha AND LaLa</str>
<str name="QParser"/>
</lst>
正如您从响应中看到的Solr寻找包含&#34; Haha和LaLa&#34;的文档。 字段查询解析器处理&#34; AND&#34;搜索关键字不是逻辑运算符。