## 补充说明
首先介绍一个概念,就是缓存。为提升整体查询效率,所有的历史查询会被记录在缓存里,当用户请求过来时,会首先去缓存里寻找结果。而缓存的更新周期较长,所以在我们做一些修改,比如为某条问答增加了关键词之后,再问同样的问题,发现关键词没有生效,实际上是从缓存里取了添加关键词之前的问题。
## 关键词的工作逻辑
首先还是解释一下关键词的整体工作逻辑:加权+完全匹配。展开来说,1、在没有关键词设置的情况下,用户的提问首先会和私有语料库的所有问题进行相似度打分,如果打分最高的结果超过了私有语料库设置的匹配度,则返回该结果;2、在设置了关键词的情况下,如果用户说的话中包含了设置的关键词,会对设置的关键词进行加权计算相似度,如果加权后打分最高的结果超过了设置的匹配度,则返回该结果;3、在设置了关键词,且加权计算之后,任然没有超过设置的匹配度,那么进行关键词完全匹配对比,如果用户说的话,包含了私有语料库某条问答的所有关键词,则返回该问答;4、在设置了关键词,且触发了关键词完全匹配逻辑之后,如果命中了多个问题,那么在这些问题里取相似度打分最高的结果返回。
## 关键词的使用注意事项
根据以上的逻辑,关键词的设置,应该尽量遵循以下原则:1、多个关键词的情况下,不要设置近义词,要设置会在一句话里同时出现的词;2、如果需要通过关键词设置来提升匹配精度,那么关键词粒度要细,如“AAA的价格”“AAA的选型”这两个问题,可分别将“价格”“选型”设置为关键词,如果还有“BBB的价格”“BBB的选型”这些问题,那么就要将”AAA”,”BBB”也分别设置为关键词;3、避免使用短语,尽量使用单词作为关键词,提升关键词的命中率。
## 关键词的使用案例
(未避免缓存的影响,我们在两个不同的机器人下面来做这个案例)
分别在两个机器人下面设置同样的问题:“断路器的选型问题”。 其中一个问题没有关键词,另外一个问题,将 “断路器”与“选型”设置为关键词。

-----------------------------------------------------------------

我们来看下测试结果:
首先是没有设置关键词的问题,当问法与设置的问题相差较大时,机器人无法给出正确答复。

再来看设置了关键词的问题:当问法与设置的问题相差较大时,机器人可以给出正确答复。

下面再来看另外一个案例,围绕同一个产品的不同属性的问题,如上面的例子是断路器选型,我们在这里再加一个“断路器的价格”问题,设置如下

测试结果如下:在分别提问价格和选型相关的问题,且问法与设置的问题有较大差距时,均可以返回正确的结果。

