單詞的單數形式我有一個Rails +太陽黑子的應用和我的工作,使搜索返回查詢的singluar版本配置它。例如:發現太陽黑子/ Solr的
我想搜索「cookies」以返回名爲「cookie」的內容。目前我的太陽黑子搜索返回「cookies」,但不是「cookie」(單身)。
我已經對Solr的schema.xml進行了一些自定義,增加了solr.EdgeNGramFilterFactory以提供更多的靈活性,但EdgeNGramFilterFactory沒有包含這種情況,因爲只有當查詢是結果名稱的子字符串時才允許匹配。我的理解是當用戶搜索「co」,「coo」,「cook」或「cooki」,而不是「cookie」的超字符串(即:cookies)時,EdgeNGramFilterFactory將返回「cookie」。簡而言之,這是因爲「cookies」不是「cookie」中的子字符串。
我已經嘗試添加三個Solr的強大的內置在制止工廠,但無濟於事。你可以在我的模式中看到一個註釋。
schema.xml中,相關領域如下所示:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
<!-- <filter class="solr.EnglishMinimalStemFilterFactory"/> -->
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我認爲我可以singluarize用戶的查詢,但它擊中的Solr之前,我寧願不碰他們的查詢。
你可以在這裏玩這個:http://staging.zisboombah.com/parent/food_guide/?search=cookie。嘗試改變「cookie」和「cookies」之間的查詢。
有關如何在Solr中做到這一點的任何提示將不勝感激!
感謝凱爾!你有任何可以進一步解釋copyField的資源的鏈接嗎?也許是一個例子? – Mike 2011-12-22 21:31:19
在另一個答案[下面]中擴展了這個概念(http:// stackoverflow。com/questions/8596826 /發現 - 單詞在太陽黑子 - solr/8706740#8706740)(太長的評論)。 – 2012-01-03 00:31:47