我正在尝试使用 Edismax 解析器在 Solr 文本字段中查找包含星号/查询标记的文档。当我搜索通常的文本 ( fq={!edismax}textfield:*sometext*
) 或什至使用转义 ( ) 搜索任何其他特殊 Lucene 字符fq={!edismax}textfield:*\~*
时,一切正常。
但是,在搜索*
( fq={!edismax}textfield:*\**
) 或?
( fq={!edismax}textfield:*\?*
) 时,这些字符似乎没有被转义,因为所有文档都被返回。我也尝试对转义字符进行URL 编码\%2A
(比如代替\*
),但是结果是一样的。
该问题似乎仅与前导通配符有关,因为fq={!edismax}textfield:\**
andfq={!edismax}textfield:\?*
返回正确的结果,但不(以及fq={!edismax}textfield:*\*
等)。fq={!edismax}textfield:*\?
fq={!edismax}textfield:*sometext\*
如何搜索*
/?
使用带有前导星号通配符的 Edismax?