现在很多聊天机器人厂商实现的方式还是以信息检索为主,比如知识库 FAQ,很实用,很简单,见效快,比如 Chatopera 智能问答引擎。
而信息检索系统里,目前最好的、最流行的就是 ElasticSearch,Java写的,底层是 Apache Lucene,ElasticSearch作为优秀的开源搜索引擎解决方案,拥有强大的数据管理能力。其中,怎么高效率的使用 Query 是ElasticSearch的重点。
从一个 query body 开始
{
"query": {
"bool": {
"disable_coord": true,
"must": [
{
"match": {
"enabled": "1"
}
},
{
"range": {
"effectTime": {
"lt": "2017-06-13 13:33:54"
}
}
},
{
"range": {
"expireTime": {
"gt": "2017-06-13 13:33:54"
}
}
}
],
"should": [
{
"match": {
"location": {
"query": "北京",
"boost": 2.7617
}
}
}
]
}
},
"size": 50
}
A query that matches documents matching boolean combinations of other queries.
- must
The clause must appear in matching documents and will contribute to the score.
-
<
使用ElasticSearch构建聊天机器人的信息检索

本文介绍了如何利用ElasticSearch实现聊天机器人的信息检索。文章讲解了query body的构造,包括bool查询中的must和should用法,以及term和match的区别。通过设置不同的查询条件,可以实现高效的检索策略。同时,还提到了filter和must_not在构建查询时的作用。
最低0.47元/天 解锁文章
1145

被折叠的 条评论
为什么被折叠?



