Ruby on rails 用模糊搜索寻找太阳黑子?

Ruby on rails 用模糊搜索寻找太阳黑子?,ruby-on-rails,ruby-on-rails-3,solr,sunspot,Ruby On Rails,Ruby On Rails 3,Solr,Sunspot,我的数据库或Solr索引中有以下两种产品:全面战争:幕府将军2[下载]和鸡蛋 我希望搜索能够将这两种产品与错误进行匹配,例如: “Egggs”、“Eggz”、“Eg”、“Egs”和“Shogn下载”、“Totle-War”、“Tutal-War:Shogunn 2下载”等 编辑(稍微工作): 这将让您开始,但在搜索中使用不同的字符仍然存在问题,即只有的“鸡蛋”和的“高价值维生素D全脂牛奶”可能拼写错误而不是“全面战争:幕府将军2” 新代码: <fieldType name="text" c

我的数据库或Solr索引中有以下两种产品:全面战争:幕府将军2[下载]鸡蛋

我希望搜索能够将这两种产品与错误进行匹配,例如:

“Egggs”、“Eggz”、“Eg”、“Egs”和“Shogn下载”、“Totle-War”、“Tutal-War:Shogunn 2下载”

编辑(稍微工作):

这将让您开始,但在搜索中使用不同的字符仍然存在问题,即只有的“鸡蛋”和的“高价值维生素D全脂牛奶”可能拼写错误而不是“全面战争:幕府将军2”

新代码:

<fieldType name="text" class="solr.TextField" omitNorms="false">
        <analyzer type="index">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="1" splitOnNumerics="1" splitOnCaseChange="1" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
            <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="1" splitOnNumerics="1" splitOnCaseChange="1" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
            <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>


理想的情况是我能像谷歌一样进行搜索,它能很好地纠正你的拼写,无论是小写、大写还是有几个错误。如何使我的搜索与谷歌的搜索相似?

模糊搜索不会进行查询时间分析。
因此,您的查询可能与索引项不匹配

上述配置中的术语在索引过程中会进行小写过滤,这将以小写形式存储所有术语。
而搜索EGGG永远不会产生任何结果,因为EGGG不会匹配鸡蛋。 搜索的术语需要显式地小写

此外,在上述配置中,索引时间分析与查询时间分析非常不同。
通常建议在查询和索引期间使用类似的过滤器,以便索引项与搜索项匹配

solr.PorterStemFilterFactory
可能会导致搜索项的根完全不同,并且可能永远不会与索引项匹配

重新访问您的配置。也许可以查看示例solr模式xml以供参考