solr查询:使用通配符搜索类型*

时间:2016-11-04 03:29:34

标签: solr

schema.xml中的字段定义:

<field name="typeDesc" type="text_general" indexed="true" stored="true"/>

typeDesc存储公立,公立,三甲,公立,二甲等值。

问题是当我查询typeDesc:*三甲*时,什么都没有,但当我查询typeDesc:*公立*或typeDesc:*三*或typeDesc:*甲*或typeDesc:三甲时,他们都可以找到结果像公立,三甲。我想知道原因。

1 个答案:

答案 0 :(得分:1)

虽然我不太熟悉汉字的分词规则,但我猜想原因是当你进行通配符搜索时,对该字段的分析并不是很好。执行。如果三和甲分成单独的令牌,则外卡匹配将找不到与您的搜索匹配的任何令牌。

您可以使用管理页面的分析选项卡确认这一点,以查看正在分析索引术语的标记。

可能的解决方案是在单个字符串字段中索引术语并对其进行通配符匹配,或者如果在存储令牌之前需要进一步处理,则使用KeywordTokenizer作为文本字段(关键字tokenizer将保留文本作为一个单一的标记)。您也可以使用ngramfilter并删除通配符。