es match_phrase 匹配问题

来源:2-1 pycharm的安装和简单使用

sjdgbhb

2021-06-21

老师 ,比如match_phrase我想匹配到“中文”,但“中文字”,“学中文”,“学中文字”也被匹配到了,有没有办法只匹配到“中文”

写回答

1回答

bobby

2021-06-23

es是基于分词存储的,你这里能搜索到是因为保存到es中的时候这个字段会默认被分词,然后你搜索的时候就会出现把你的query分词之后去和这个字段匹配,但是很多时候某些字段你不希望被分词,比如用户姓名就不能分词,这个时候你只要在mapping中将这个字段设置为keyword类型,那么es保存和搜索的时候就不会分词而是和mysql的等于一样全匹配了

0
4
bobby
回复
sjdgbhb
你可以好好的了解一下term查询和存储时候的分词原理,不是你只改查询就行,设置mapping的时候也需要设置好
2021-08-13
共4条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程