Lucene.net对多个字段进行过滤
本文关键字:过滤 字段 net Lucene | 更新日期: 2023-09-27 18:16:43
下面是我的schema
Product_Name (Analyzed),Category (Analyzed)
场景:
我想搜索那些类别恰好是"手机"的产品。, Product_Name为sam*
等价的SQL查询是
select * from products
where Product_Name like '%sam%' and Category='Cellphones & Accessories'
我正在使用lucene.net。
我需要等价的lucene.net
语句
由于这是几个月前的事,我将简短(如果你仍然感兴趣,我可以扩展)…
如果您想要与Category完全匹配,那么不要分析。分析器将把字符串切碎,然后进行搜索。匹配大小写可能会有问题,所以可能只有小写分析器才适用于该字段。以不同的方式分析多个字段,以便使用不同的查询,这可能会很有用。
注意:"sam*"不等于"%sam%"
您希望"sam"是前缀"sample"还是单词"the same product"?如果它是一个单词,那么无停顿词分析器应该是好的。一个不错的技巧是使用不同的名称创建许多字段(具有相同的名称)。可能只有小写分析器
name: "some sample product"
名称:"样品"
名称"产品"
然后看看"前缀查询"。查询(name:sam)将匹配。
还可以查看PerFieldAnalyzerWrapper,以便为每个字段使用不同的分析器。