Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何利用太阳黑子实现通配符搜索_Ruby On Rails_Sunspot - Fatal编程技术网

Ruby on rails 如何利用太阳黑子实现通配符搜索

Ruby on rails 如何利用太阳黑子实现通配符搜索,ruby-on-rails,sunspot,Ruby On Rails,Sunspot,欢迎任何帮助 我正在使用solr中的sunspot,但没有找到任何好的解决方案来解决如何使用sunspot执行通配符搜索的问题 如果我搜索8088*** 它应该返回所有以8088开始的数字,而不是228088560。太阳黑子给你免费的通配符*使用NGramToeknizer(有时会出现NgramtoEnizer问题,用于太小的子集和其他怪癖),这意味着排除实际上是一个棘手的部分。如果您知道数字中的位数(比如6),一种粗略但有效的处理方法是不使用(:field)。大于(808900)而不使用(:f

欢迎任何帮助 我正在使用solr中的sunspot,但没有找到任何好的解决方案来解决如何使用sunspot执行通配符搜索的问题

如果我搜索8088***


它应该返回所有以8088开始的数字,而不是228088560。太阳黑子给你免费的通配符*使用NGramToeknizer(有时会出现NgramtoEnizer问题,用于太小的子集和其他怪癖),这意味着排除实际上是一个棘手的部分。如果您知道数字中的位数(比如6),一种粗略但有效的处理方法是不使用(:field)。大于(808900)而不使用(:field)。小于(808700)在/solr/conf/schema.xml中查找以下代码行:

<fieldType name="text" class="solr.TextField" omitNorms="false">
    ...
</fieldType>

我想要不同的搜索如果我写“Raj”,那么它应该只返回具有确切Raj的匹配项,当我搜索Raj时没有双引号,那么它应该返回Raj,Rajkumar,Rajesh,Madhanraj,如果我写Raj*那么它应该返回Raj,Rajkumar,Rajesh,我已经使用过NGramFilterFactory但不起作用properly@Raj古普塔,我已经做过类似的事情了。你找到答案了吗?或者我应该发布一个答案吗?我也不知道如何做Raj想要的事情,所以我肯定会很感激你的回答。似乎不再有
NGramFilterFactory
了,也不再有
edengramfilterfactory
了。
<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="1" maxGramSize="20" side="front" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>
rake sunspot:solr:stop
rake sunspot:solr:start
rake sunspot:reindex