使用ReverseStringFilterFactory对字段进行Solr搜索会返回0条反向输入记录

时间:2017-03-22 00:05:24

标签: solr solrcloud

我有一个要求,即当用反向或严格的字符串搜索时,用户应该能够获得相同的结果 例如:q =“F44”或q =“44F”应该得到相同的结果。

我创建了一个新字段“text_rev”,它被分配到以下字段类型。 我用实际/原始字段“retailId”

进行了复制字段
<copyField source="retailId" dest="text_rev"/>

<fieldType name="text_rvsstr" class="solr.TextField"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/><filter class="solr.ReverseStringFilterFactory"/></analyzer></fieldType>

当我用q = text_rev:F44搜索时,我得到了结果,但是当我用q = text_rev:44F搜索时,我得到0结果。

请建议。

2 个答案:

答案 0 :(得分:0)

这些搜索位于同一个字段中。搜索反向方向仅适用于反向字段,搜索向前方向仅适用于原始字段。

通过在两个字段中搜索相同的信息,您可以在一个查询中检查两个方向。

q = retailId:F44 OR text_rev:F44

答案 1 :(得分:0)

您需要搜索这两个字段。此外,如果您实际期望反向搜索,则需要具有非对称索引和查询类型定义。否则,你的术语在索引和查询过程中都会被反转,你实际上没有理由这样做。

您可以使用管理界面的分析屏幕并在两个框中提供内容来测试。然后,它将显示在索引/查询期间如何处理和匹配术语。