Configuration Solr案例不敏感

Configuration Solr案例不敏感,configuration,lucene,solr,case,case-insensitive,Configuration,Lucene,Solr,Case,Case Insensitive,你好 我正在Solr中实现一个自动完成功能,但有一个问题 对于自动完成,我正在使用 <fieldType name="text_auto" class="solr.TextField" sortMissingLast="true" omitNorms="true"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter clas

你好

我正在Solr中实现一个自动完成功能,但有一个问题

对于自动完成,我正在使用

<fieldType name="text_auto" class="solr.TextField" sortMissingLast="true" omitNorms="true">
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>  
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType> 

我认为小写过滤器应该使令牌大小写不敏感,但这是错误的。事实上,该标记仅小写,这意味着像“comput”这样的查询将导致“computer”,而“comput”则不会。 事实上,我想让电脑和电脑连接到电脑

我试过这个:

<fieldType name="text_auto_low" class="solr.TextField" sortMissingLast="true" omitNorms="true">
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>  
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType> 

<fieldType name="text_auto_up" class="solr.TextField" sortMissingLast="true" omitNorms="true">
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>  
    </analyzer>
</fieldType>


出于某种原因,它也没有任何意义。我的问题是为什么我能解决这个问题?

Lucene有Analyzer类,您可以通过三种方式使用(实现):

  • SimpleAnalyzer:将所有输入转换为小写
  • StopAnalyzer:这将删除从搜索中删除噪音的单词
  • StandardAnalyzer:这会执行上述过滤过程,因此可以“清理”您的查询
现在,说到你的问题,我建议使用一种名为ngram的技术,它将你的查询拆分,然后搜索那些短语。因此,即使有拼写错误,您仍然可以获得出色的结果

要知道如何做到这一点,我建议你阅读,让你开始。它还有关于查询的其他重要信息。 这不仅可以解决您的问题,还可以增强您的应用程序


玩得开心:D

Lucene拥有Analyzer类,您可以通过三种方式使用(实现):

  • SimpleAnalyzer:将所有输入转换为小写
  • StopAnalyzer:这将删除从搜索中删除噪音的单词
  • StandardAnalyzer:这会执行上述过滤过程,因此可以“清理”您的查询
现在,说到你的问题,我建议使用一种名为ngram的技术,它将你的查询拆分,然后搜索那些短语。因此,即使有拼写错误,您仍然可以获得出色的结果

要知道如何做到这一点,我建议你阅读,让你开始。它还有关于查询的其他重要信息。 这不仅可以解决您的问题,还可以增强您的应用程序


玩得开心:D

嘿,我找到了一个类似的帖子。看看它是否也有帮助:这是:)嘿,我发现了一个类似的帖子。看看它是否也有帮助:以下是:)