我有一个字段在Solr的schema.xml中被索引为字符串,该字段来自mysql数据库中的boolean(tinyint)列。
在查询中,我使用1搜索此字段。但是没有任何更改,此查询无法返回正确的结果。在我使用true而不是1之后,它再次起作用。现在又出现了问题但是真的没问题。
这里的确切问题是什么?我是否需要将schema.yml中的字段类型更改为整数?
提前谢谢。
答案 0 :(得分:5)
因为它是一个字符串字段,所以我们不可能知道你如何索引它。它可能是“真”/“假”或“1”/“0”或“开”/“关”等。或者甚至是这些的混合,也许你有一些文件有“真”而有些文件有“1” ”
如果它在语义上是一个布尔字段,我建议使用布尔字段类型,例如:
<field name="inStock" type="boolean" indexed="true" stored="true" />
要使其工作,您需要声明的布尔字段类型(它在默认架构中声明):
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
请记住在此更改后重建索引。