我正试图使用Edismax解析器在Solr文本字段中查找包含星号/查询标记的文档。当我使用转义(fq={!edismax}textfield:*~*
)搜索普通文本(fq={!edismax}textfield:*sometext*
),甚至搜索任何其他特殊的Lucene字符时,一切都很完美。
但是,当搜索*
(fq={!edismax}textfield:***
)或?
(fq={!edismax}textfield:*?*
)时,这些字符似乎不会被转义,因为所有文档都会被返回。我也尝试对转义字符进行URL编码(比如%2A
而不是*
),但是结果是一样的。
这个问题似乎只涉及前导通配符,因为fq={!edismax}textfield:**
和fq={!edismax}textfield:?*
返回正确的结果,但fq={!edismax}textfield:**
和fq={!edismax}textfield:*?
不返回(以及fq={!edismax}textfield:*sometext*
等)
如何使用带前导星号通配符的Edismax搜索*
/?
?
引用星号对我很有用。这个查询在我的索引中找到两本书,标题中有一个独立的星号:
title:"*"
这是其中一本书的标题:"Be*Know*Do,改编自陆军官方领导手册"。
我正在使用Solr 3.3的edismax。