solr搜索结果中的字段值为1或true

时间:2011-01-06 04:43:34

标签: lucene solr

我有一个字段在Solr的schema.xml中被索引为字符串,该字段来自mysql数据库中的boolean(tinyint)列。

在查询中,我使用1搜索此字段。但是没有任何更改,此查询无法返回正确的结果。在我使用true而不是1之后,它再次起作用。现在又出现了问题但是真的没问题。

这里的确切问题是什么?我是否需要将schema.yml中的字段类型更改为整数?

提前谢谢。

1 个答案:

答案 0 :(得分:5)

因为它是一个字符串字段,所以我们不可能知道你如何索引它。它可能是“真”/“假”或“1”/“0”或“开”/“关”等。或者甚至是这些的混合,也许你有一些文件有“真”而有些文件有“1” ”

如果它在语义上是一个布尔字段,我建议使用布尔字段类型,例如:

<field name="inStock" type="boolean" indexed="true" stored="true" />

要使其工作,您需要声明的布尔字段类型(它在默认架构中声明):

<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>

请记住在此更改后重建索引。