ElasticSearch 全文搜索匹配中文短语

2020-05-22 00:00:00 文档 位置 匹配 分词 公开发行
这里针对的是已分词字段的全文搜索,不是针对未分词字段的 term 搜索。

全文搜索时要实现匹配,需要用到 match_phrase 语句。

建索引时必须分词,分词操作会把一个字符串拆分成一系列 token,每个 token 有三个位置参数:start_offset,end_offset,position。

中文分词常用的一个插件叫 ik,但使用 ik 分词后,match_phrase 查询会出现问题 (参考:类似#195的match_phrase问题 · Issue #204 · medcl/elasticsearch-analysis-ik,注意 ik 的作者 @medcl 在 2017 年 1 月 5 号的回答),举例如下:

假设我们用 ik_max_word 索引了两个文档,内容分别为:

{
  "title": "公开发行"
}
{
  "title": "公开发行股票"
}

相关文章