现在很多聊天机器人厂商实现的方式还是以信息检索为主,比如知识库 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 matchi