在多个领域
问题描述:
以下lucene.net过滤是我的架构在多个领域
PRODUCT_NAME(分析),类别(分析)
场景:
我要搜索的产品,其种类也正是“手机&附件”和PRODUCT_NAME是 “萨姆*”
等效SQL查询
select * from products
where Product_Name like '%sam%' and Category='Cellphones & Accessories'
我正在使用lucene.net。
我需要等效的lucene.net
声明。
答
由于这是一个几个月大,我会简短的(如果你仍然有兴趣,我可以扩大)...
如果你想有一个精确匹配的类别,然后不分析。分析仪会将字符串切分成可搜索的位。匹配的情况可能有问题,所以也许只有小写分析器可以用于该领域。 以不同方式分析几个字段以便可以使用不同的查询可能会很有用。
注:“萨姆·”不等同于“%SAM%”
你想“萨姆”是一个前缀,即“样品”或单词“the SAM产品”? 如果是一个词,那么一个没有停用词的分析器应该没问题。 一个不错的诀窍是用名称的变体创建许多字段(具有相同的名称)。也许只是一个小写分析
名称:“一些小样”
名称:“小样”
名称”,‘产品’
再看看在‘前缀查询’ 。(name:sam)的查询将会匹配。
也可以看一下PerFieldAnalyzerWrapper,以便为每个字段使用不同的分析器