2013-04-30 154 views
3

我已经安装了Solr和我的Rails 3.0应用程序的太阳黑子宝石。Solr和太阳黑子模糊搜索

我的目标是做模糊搜索。 例如,我想将搜索字词“Chatuea Marguxa”命名为“ChâteauMargaux”。

其实,只找到相同的确切单词,所以模糊根本不起作用。

我的模型:

searchable do 
    text :winery 
    end 

我的控制器:

search = Wine.search do 
    fulltext 'Chatuea Marguxa' 
    end 

Solr的模式我试过了,用的n-gram:

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15"/> 
    </analyzer> 

我也试图与双音位:

<analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StandardFilterFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.PorterStemFilterFactory"/> 
     <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/> 
     </analyzer> 

在这两种情况下,我得到0响应。 (当然重新索引后)。

我做错了什么?

+0

语音过滤器不能满足您的情况,您需要拼写检查/更正 – 2013-04-30 14:28:16

+0

我可以使用什么工具?我不明白。 – 2013-04-30 15:36:52

回答

0

一些摸索透露fuzzily宝石:

Anecdotical基准:对我们整个国地名衍生的 位置(3.2M的记录,大约1GB的数据),我的开发机上 (2011年的MacBook表临)

搜索的顶部10匹配的记录需要6ms的±1制备 索引的所有记录约需10分钟的DB查询开销时 改变的记录是在3ms的±2的存储器开销(该的足迹trigrams表索引)大约300MB