最近在使用solr的过程当中遇到了一个问题,就是在创建solr字段(filed)的时候查询失效,我第一相当的当然是在schema.xml中的这个字段中查看indexed的属性是否设置为true,果不奇然,为false,然后我手动修改为true.重启后接下来查询该字段发现还是不行。
我创建的字段是店铺的名称(store_name) 然后我就使用store_name:店铺名称 查询 发现问题 必须输入店铺的全名称才能查询到数据 类似sql中的like语句失效 相当于是sql中的=语义 没辙 我又再一次寻找问题所在,找了n久之后发现还有分词这一说法。
于是乎我再一次在store_name的type属性由之前的string改为text_ik ,重启之后(在这里我怀疑应该就没有问题了,但是后面重启之后还是没有生效 猜想是否是由于修改配置文件重启,solr的缓存问题导致修改配置没有立即生效),发现仍然没有效果 这些可把我苦恼住了,然后使用了copyField标签和dynamicField标签的索引 都没有办法解决这个问题。这个时候已经是凌晨4点多了 我实在没办法了 ,得了 关闭服务器 洗洗睡吧。
第二天中午起床之后,开启服务器,打算在寻找问题所在,心理抱有一丝丝的幻想 尝试再试一次。喜出望外。居然没有问题了,成功了!所以推断出字段查询只要设置了indexed=true,如果是分词查询的话 再设置type=text-ik 基本就不存在问题了。如果没有效果 也许是由于solr修改配置文件之后立即重启 存在的缓存问题导致的 所以过一会再看看 应该就没问题了