该字段在schema.xml中定义:
<field name="typeDesc" type="text_general" indexed="true" stored="true"/>
typeDesc像公立,公立,三甲,公立,二甲一样存储这些值。
问题是当我查询typeDesc:*三甲*时,什么也没有,但是当我查询typeDesc:*公立*或typeDesc:*三*或typeDesc:*甲*或typeDesc:三甲时,它们都可以找到类似公立,三甲的结果。我想知道原因。
发布于 2016-11-04 22:06:50
虽然我不太熟悉汉字的分词规则,但我猜原因是当您进行通配符搜索时,不会执行字段分析。如果将三和甲拆分为单独的令牌,则通配符匹配将找不到与您的搜索匹配的任何令牌。
您可以通过使用管理页面的分析选项卡来确认这一点,以查看某个索引项被拆分到哪些令牌中。
可能的解决方案是在单个字符串字段中为术语编制索引,并对其进行通配符匹配,或者,如果在存储标记之前需要进一步处理,则对文本字段使用KeywordTokenizer (关键字标记生成器将文本保留为单个标记)。您还可以使用could过滤器并删除通配符。
https://stackoverflow.com/questions/40414823
复制相似问题