我有一個關於lucene Stemmer的問題。 我想知道lucene是否保留了詞幹詞和非詞幹詞,或者只是用非詞幹詞替換了詞幹詞?lucene stemmer策略(它是否同時保留了詞幹和非詞幹詞或者只是詞幹詞)
例如,如果記錄有以下幾點: 「每個人都喜歡貓」 做它會被索引爲 「人人都愛的愛貓貓」或「所有愛貓」
是否有同樣的策略爲查詢和記錄?
我有一個關於lucene Stemmer的問題。 我想知道lucene是否保留了詞幹詞和非詞幹詞,或者只是用非詞幹詞替換了詞幹詞?lucene stemmer策略(它是否同時保留了詞幹和非詞幹詞或者只是詞幹詞)
例如,如果記錄有以下幾點: 「每個人都喜歡貓」 做它會被索引爲 「人人都愛的愛貓貓」或「所有愛貓」
是否有同樣的策略爲查詢和記錄?
通常,只保留Stemmed版本。也就是說,在你的例子中,最終的結果將是「每個人都愛貓」,而不是「每個人都愛貓貓」或一些類似的組合。
預計在索引和查詢時都使用相同的詞幹分析器。可能會有一些詞幹分析過濾器像SynonymFilter
一樣允許您保留原始過濾器,但這樣做並運行未定序的查詢將導致PhraseQueries無法正常工作(請參閱SynonymFilter文檔中關於此主題的說明)。我不相信最常見的干擾篩選器(即PorterStemFilter)提供該功能。
我你需要能夠搜索未定性的數據出於某種原因,我會建議存儲第二個字段,完全沒有爲此目的設定。
非常感謝。我得到了你所說的。因此,如果我們想要使用幾個過濾器,是否需要遵循以下順序: LowerCaseFilter - > SynonymFilter - > StopWordsFilter - > StemmerFilter? –
我可能會在末尾放置一個'SynonymFilter',並確定同義詞是使用干擾詞定義的(或者可能在構建'SynonymFilter'時通過同一個詞幹程序運行它們)。雖然對我來說似乎很好。 'StandardTokenizer' - >'StandardFilter' - >'LowerCaseFilter' - >'StopWordsFilter' - >語言 - StemmerFilter-some-kind形成一個語言特定分析器的相當合理的基線模式。 – femtoRgon
非常感謝 –
不是一個直接的答案,但以我的經驗來看,如果您想提高召回率,保持兩者都是一個好策略。 –