我想按照标题搜索一本书。可以说我有2本书叫
"Please do a wildcard search"
"Please do a deep search"
然后我执行solr通配符搜索,如下所示:
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"q":"BOOK_NAME:\"Please*search\"",
"indent":"on",
"wt":"json"}},
"response":{"numFound":0,"start":0,"docs":[]
}}
我期待这次搜索中有2本书,但发现的文件数量是0
Reference我找到了通配符搜索:
我正在使用solr 6.
答案 0 :(得分:1)
您的查询似乎是一个词组查询,即BOOK_NAME:"Please*search"
而不是BOOK_NAME:Please*search
。这将尝试找到确切的短语请*搜索
此外,除非您以保留整个标题作为令牌的方式为BOOK_NAME编制索引,否则我认为该查询无效。尝试将字段索引为字符串,或者尝试使用ComplexPhraseQueryParser
ComplexPhraseQParser支持通配符,OR等, 使用Lucene的ComplexPhraseQueryParser进行短语查询。下 封面,这个查询解析器使用Span组查询, 例如,spanNear,spanOr等,并受到相同的限制 作为那个家庭或解析者
{!complexphrase inOrder=true}BOOK_NAME:"Please*search"
或{!complexphrase inOrder=true}BOOK_NAME:"Please * search"