elasticsearch分词等问题

Elasticsearch | 作者 maixiaohe | 发布于2019年05月14日 | 阅读数:216

es如果不安装分词器的话,是不是以一个 字一个字的检索?怎么解决?
如果以matchPhraseQuery或者termQuery查询,怎么能所有字段查询?
如果以multiMatchQuery查询所有字段,怎么把精准匹配的排在最前面,匹配一个字的排在最后面
已邀请:

hapjin

赞同来自: mushao999

1,ES不安装分词器,但是你得定义索引(index、mapping)存储数据,不指定Analyzer的话默认是standard Analyzer。Standard Analyzer可理解为一个字一个字的分词。但是它会过滤掉特殊的符号,比如文本里面有: ❶ 字符就会被过滤了,可以用 _analyze 测试。
2,用Bool query 可以组合 多个term query,参考:query-dsl-bool-query
3,不知道。ES默认评分机制已经很好了吧,实际情况配合 bool query、function score query、或者各种微调参数(cross_fields、best_fields)基本能满足要求。

要回复问题请先登录注册