我是Apache Solr的新手,并尝试使用搜索术语对名为“normalizedContents”和“text”类型的字段进行查询。
所有搜索字词都必须存在于该字段中。问题是,我得到了不一致的结果。
例如,solr索引只有一个带有normalizedContents字段的文档,其值为“EDOUARD SERGE WILFRID EDOS0004 UNE MENTION COMPLEMENTAIRE”
我在solr的网络界面中尝试了这些查询:
这是schema.xml中normalizedContents的声明:
<field name="normalizedContents" type="text" indexed="true" stored="true" multiValued="false"/>
因此,通配符和AND运算符不遵循预期的行为。我做错了什么?
感谢。
答案 0 :(得分:0)
默认情况下,字段类型 text 确实源于内容(solr.SnowballPorterFilterFactory
)。因此,'un'和'uned'匹配。然后,您可能在查询和索引分析器上都没有solr.LowerCaseFilterFactory
过滤器,因此EDUAR *不匹配。并且第4次不匹配,因为edouard并不是为了edouar。如果需要完全匹配,则应将数据复制到另一个具有更有限过滤器类型的字段中。例如。只有solr.WhitespaceTokenizerFactory
从您的架构中发布<fieldType name="text">
部分可能有助于理解所有内容。