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

Kai*_*ang 3 lucene solr

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

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

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

先感谢您.

Mau*_*fer 5

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

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

<field name="inStock" type="boolean" indexed="true" stored="true" />
Run Code Online (Sandbox Code Playgroud)

为此,您需要声明布尔字段类型(它在默认架构中声明):

<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
Run Code Online (Sandbox Code Playgroud)

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