【发布时间】:2017-03-15 15:57:24
【问题描述】:
这与从输入字符串中删除所有特殊字符略有不同。我只想要它们原样。例如:
查询:哈哈 AND LaLa 将被标记为
1. Haha
2. And
3. LaLa
不是
1. Haha
2. LaLa
同样的逻辑,一个特殊字符的输入例如:
`! , . : ; OR NOT < >`
将是......他们自己(不是逻辑构造函数,如果数据库中存在这样的名称,查询将返回结果)
【问题讨论】:
这与从输入字符串中删除所有特殊字符略有不同。我只想要它们原样。例如:
查询:哈哈 AND LaLa 将被标记为
1. Haha
2. And
3. LaLa
不是
1. Haha
2. LaLa
同样的逻辑,一个特殊字符的输入例如:
`! , . : ; OR NOT < >`
将是......他们自己(不是逻辑构造函数,如果数据库中存在这样的名称,查询将返回结果)
【问题讨论】:
您可以使用字段或原始查询解析器搜索您输入的查询字符串,而无需任何分析或转换。
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 的回复中可以看出,正在寻找包含“哈哈和拉拉”的文档。 字段查询解析器将“AND”视为搜索关键字而不是逻辑运算符。
【讨论】: