Lucene Cloudant搜索:为什么我的通配符不起作用?

Lucene Cloudant搜索:为什么我的通配符不起作用?,lucene,couchdb,cloudant,Lucene,Couchdb,Cloudant,我有一个带有搜索索引的Cloudant数据库。在搜索索引中,我为文档的标题编制索引。例如,搜索“Rijkspersonel”: 返回48行 但是,当我用a替换“o”时?通配符: 我得到0个结果。为什么呢?他们说这也应该和“Rijkspersonel”匹配 我以前的回答肯定是错的。内部通配符似乎不受支持。尝试: title:rijkspe*on* title rijksper?on* 相当肯定这里发生的是一个分析问题。相当确定您使用的是词干分析器。我对cloudant及其实现并不十分熟悉,但

我有一个带有搜索索引的Cloudant数据库。在搜索索引中,我为文档的标题编制索引。例如,搜索“Rijkspersonel”:

返回48行

但是,当我用a替换“o”时?通配符:


我得到0个结果。为什么呢?他们说这也应该和“Rijkspersonel”匹配

我以前的回答肯定是错的。内部通配符似乎不受支持。尝试:

title:rijkspe*on*
title rijksper?on*
相当肯定这里发生的是一个分析问题。相当确定您使用的是词干分析器。我对cloudant及其实现并不十分熟悉,但在Lucene中,通配符查询与术语查询的分析不同。我猜你对这个字段的分析包括一个词干分析器,在这种情况下,“rijkspersonel”实际上被索引为“rijkspersone”

所以,当你搜索

rijkspersonee*

由于索引表单的末尾缺少“el”,因此找不到匹配项。当只搜索
rijkpersoneel
时,它确实会被分析,您会搜索单词的词干形式,并找到匹配项


词干分析和通配符就是不合拍。

Boo!这是Lucene的一个必要缺点吗?我们不能把词干和整个单词都编索引吗?那当然是一个选择,是的。您可以实现一个分析器,该分析器在同一位置增量处对两个文本进行索引,或者只对不同字段中有词干和无词干的文本进行索引,并根据需要搜索每个字段或其他字段。
rijkper?oneel