Java Solr搜索查询区分大小写
我试图使用Solr搜索一些名为FirstName的记录Java Solr搜索查询区分大小写,java,apache,solr,Java,Apache,Solr,我试图使用Solr搜索一些名为FirstName的记录 abcd Abcd abcD ABcd abCd abCD 现在我正在尝试使用通配符支持进行搜索。 我需要了解搜索在区分大小写方面是如何工作的 e、 g.如果我将FirstName参数作为ab*Vs ab*传递,将返回哪些记录 是否有办法使搜索区分大小写或不区分大小写?这取决于如何在schema.xml中定义字段。如果在索引和查询时使用,则所有查询都不区分大小写。否则它将区分大小写 <filter class="solr.Lower
abcd
Abcd
abcD
ABcd
abCd
abCD
现在我正在尝试使用通配符支持进行搜索。
我需要了解搜索在区分大小写方面是如何工作的
e、 g.如果我将FirstName参数作为ab*Vs ab*传递,将返回哪些记录
是否有办法使搜索区分大小写或不区分大小写?这取决于如何在schema.xml中定义字段。如果在索引和查询时使用,则所有查询都不区分大小写。否则它将区分大小写
<filter class="solr.LowerCaseTokenizerFactory"/>
您可以在模式中配置它。例如:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
表示该字段被视为查询的小写。这给人的印象是不区分大小写的搜索。默认情况下,值与存储值完全匹配。如果希望字段不区分大小写,通常的方法是使用使用小写筛选器的字段类型,使所有索引内容大小写相同,实际上使搜索不区分大小写(因为查询值也将是小写的) 示例内容针对“文本”和“文本”字段类型执行此操作:
<filter class="solr.LowerCaseFilterFactory"/>
然而,在一些特定的领域,通配符查询的小写自动处理可能会造成问题,并且。如果字段已经小写,则3.6和4.0应以正确的方式自动执行通配符搜索
如果您没有获得3.6之前的正确行为,我建议在使用通配符时将查询中的名称小写(只要您在索引时也应用了小写FilterFactory)。solr模式中默认定义的字段的工作方式非常不同 数据类型
'string'
将单词存储为不完整的精确字符串
而'text\u general'
通常执行标记化和辅助处理(例如不区分大小写和整个字符串匹配)。当我们想匹配句子的一部分时,它对所有场景都非常有用
如果以下示例“搜索到句子”被索引到两个字段,我们必须精确搜索到句子中的搜索,以从字符串字段中获得命中,而在文本为“常规”的情况下,它将返回不同的结果
在这里,卖方名称将在搜索字符串中精确匹配,而产品名称将在上面的整个句子中搜索
例如:
<field name="seller_name" type="string" indexed="true" stored="true"/>
<field name="product_name" type="text_general" indexed="true" stored="true"/>
从solr 5开始,这将需要一个标记器-