2016-11-07 134 views
0

以下lucene.net過濾是我的架構在多個領域

PRODUCT_NAME(分析),類別(分析)

場景:
我要搜索的產品,其種類也正是「手機&附件」和PRODUCT_NAME是 「薩姆*」

等效SQL查詢

select * from products 
where Product_Name like '%sam%' and Category='Cellphones & Accessories' 

我正在使用lucene.net。
我需要等效的lucene.net聲明。

回答

0

由於這是一個幾個月大,我會簡短的(如果你仍然有興趣,我可以擴大)...

如果你想有一個精確匹配的類別,然後不分析。分析儀會將字符串切分成可搜索的位。匹配的情況可能有問題,所以也許只有小寫分析器可以用於該領域。 以不同方式分析幾個字段以便可以使用不同的查詢可能會很有用。

注:「薩姆·」不等同於「%SAM%」

你想「薩姆」是一個前綴,即「樣品」或單詞「the SAM產品」? 如果是一個詞,那麼一個沒有停用詞的分析器應該沒問題。 一個不錯的訣竅是用名稱的變體創建許多字段(具有相同的名稱)。也許只是一個小寫分析

名稱:「一些小樣」

名稱:「小樣」

名稱」,‘產品’

再看看在‘前綴查詢’ 。(name:sam)的查詢將會匹配。

也可以看一下PerFieldAnalyzerWrapper,以便爲每個字段使用不同的分析器