MultiDocValues.NumericDocValues.advanceExact和
MultiDocValues.SortedNumericDocValues.advanceExact 。
3)虽然可以使用MappedDirectedBuffer将存储移出JVM堆,减轻了堆GC的压力,但是当堆外内存脏块超过一定阈值,操作系统还是会触发阻塞整个进程的flush工作 。解决方法是将磁盘映射文件打开为read-only,用作append-only数据库的存储 。没有对现有块的修改就不会存在脏块,而内部异步compact来实现增量更新 。这样,只会存在缺页加载的IO操作,被淘汰的页可以立即丢弃,而不用刷回磁盘 。
二、查询智能化当今搜索系统中,单纯的文本召回已经不能满足用户的要求 。搜索引擎需要根据用户的输入,识别用户输入的语义和意图,进而修改召回和排序方式 。
2.1 语义查询生成流程
1)第一步是实体标注 。将实体名称作为词库给用户输入分词以后,给分出的每一个词标注实体,识别其类型和对应ID 。
2)第二步是提取核心语义 。例如,用户 输入” 浙江杭州西湖希尔顿”,需要识别出浙江是杭州的上级、杭州是西湖的上级,从而忽略掉” 浙江” 和” 杭州”,其核心语义就是” 西湖” 和” 希尔顿” 。
3)第三步是查询生成 。根据上面的核心语义” 西湖” 和” 希尔顿”,通过规则系统,生成查询,优先查找西湖周边的希尔顿集团下的酒店,即使这些酒店文本中,看不出包含” 浙江”、” 杭州”、”西湖”、”希尔顿” 中的任意一个 。
2.2 语义分析的常用算法
2.2.1 上下文无关句法分析(CFG)
1)优点:可以转化为自动机,计算速度快
2)缺点:语法规则固定,不适合分析比较灵活的自然语言
2.2.2 依存句法分析
依存图的主要思想是连接短语的中心词与其依存词 。用有向边把中心词与依存词连接起来 。依存分析中一个重要的概念是投射性,是由单词之间依存的线性词序决定的一种约束 。投射性的的依存句法等价于CFG,非投射的依存句法的描述范围比 CFG更广 。
1)优点:较为灵活,规则简单
2)缺点:有的情形,时间复杂度会退化到指数级别
2.2.3 酒店联想引擎中使用的语义分析
为了克服上述经典语法分析的一些弱点,酒店联想使用一种依据知识图谱分类分层的简化依存分析方式 。根据酒店的业务场景,将标注后的实体词性放入不同的bucket中,进而进一步查询bucket内部实体和bucket之间实体的关联关系,进而去除修饰词,提取核心语义 。同一bucket中的实体类型可以进一步分层,例如区域类型中省份、国家、城市、景区都可以分为单独的一层,再去获取彼此之间的关系 。从而避免算法复杂度的爆炸 。

文章插图
三、智能纠错Lucene自带的英文单词相似度纠错,是通过ngram分词索引召回,从词库中粗筛出候选词,进一步使用Levenshtein编辑距离精筛出相似度高的词 。
我们在Lucene纠错的基础上,做了更多的优化,我们的纠错会考虑上下文,纠错词库的数据来源也更加多元化,目标是使得我们的英文纠错可以媲美Bing或者google 。

文章插图
3.1 LSH 局部敏感哈希
随着业务增长,作为基础语料的实体数量也在增长,纠错词库的数据量随之增长,Lucene默认的ngram召回的候选词集合开始变得不那么准确,很多的用户目标词在粗筛过后就不在候选集内,导致无法正确纠出 。我们需要考虑加入不同的维度作为Hash桶,来进一步缩小粗筛的范围,比如词长是一个比较好的维度;并且调整ngram中参数n的大小,以及分词以后的查询交并关系,使有限的粗筛召回结果更加精确 。
3.2 上下文纠错
只考虑单词而不考虑上下文的纠错,就像只考虑单词热度而不考虑上下文的分词,有诸多局限性 。例如真词纠错case,用户输入把le meridien(艾美酒店)错输入为let meridien,单看let这个单词是并没有错的,即使认为它是错的,那么let和le直接的相似度最高也只有66.7%,看起来也不高,不一定能达到精筛过滤的相似度阈值 。
所以我们在纠错的时候也需要考虑上下文 。通过现有实体语料以及其热度,统计出热门的二元词组及其热度 。然后在纠错词,将二元词组作为单词来进行纠错 。这样也可以对用户少输入或者多输入的空格进行纠错,并且可以解决空格问题和拼写错误同时存在的场景 。例如:用户输入southcoase,通过一次纠错就可以纠出south coast这个词组 。
推荐阅读
- 中考满分作文理想与信念?理想与信念中考作文记叙文
- 女人咖啡,咖啡与肝脏
- 农人茶坊我们的梦想,茶坊在古代与现代的介绍
- 彩色铅笔的种类与选择
- 日本与夏饮三伏茶,夏至喝退热降火茶饮的健康茶
- 普洱茶与红酒的对话,那卡古树茶树的特点
- 普洱老黄片的优点,黄片与黑条的特点
- 为什么与恐龙时代的鳄鱼没有灭绝 恐龙和鳄鱼是不是同一时期的生物?
- 品读茶马史诗与,茶马史诗在京参加营养与健康高峰论坛
- 严嵩是不是宦官?严嵩与魏忠贤谁在前
