我有一个带有搜索索引的Cloudant数据库。在搜索索引中,我索引文档的标题。例如,搜索' rijkspersoneel':
http://wetten.cloudant.com/regelingen/_design/RegelingInfo/_search/regeling?q=title:rijkspersoneel
返回48行。
然而,当我更换' o'用一个?通配符:
http://wetten.cloudant.com/regelingen/_design/RegelingInfo/_search/regeling?q=title:rijkspers?neel
我得到0结果。这是为什么? Cloudant docs表示这应与“rijkspersoneel”相匹配。还有!
答案 0 :(得分:1)
我之前的回答肯定是错的。内部通配符似乎确实受支持。尝试:
title:rijkspe*on*
title rijksper?on*
相当确定这里发生的是一个分析问题。相当确定您使用的是干式分析仪。我并不是真的熟悉cloudant及其实现,但在Lucene中,通配符查询不受术语查询的影响。我猜你对这个领域的分析包括一个词干分析器,在这种情况下" rijkspersoneel"实际上被索引为" rijkspersone"。
所以,当你搜索
时rijkspersonee*
或
rijkper?oneel
自" el"在索引表单的最后遗漏,你找不到匹配。当只是搜索rijkpersoneel
时,它会被分析,然后您搜索该单词的词干形式,并找到匹配项。
词干和通配符只是不相处。