【发布时间】:2017-05-07 05:36:17
【问题描述】:
一些背景信息:在下面的示例中,用户搜索了“HTML CSS”。我从搜索字符串中拆分出每个单词并创建了如下所示的 SQL 查询。
现在我正在尝试创建一个与以下 SQL 查询具有相同逻辑的弹性搜索查询:
SELECT
title, description
FROM `classes`
WHERE
(`title` LIKE '%html%' AND `title` LIKE '%css%') OR
(description LIKE '%html%' AND description LIKE '%css%')
目前,已经完成了一半,但似乎还没有做好。
{
"query": {
"bool": {
"must": [
{
"term": {
"title": "html"
}
},
{
"term": {
"title": "css"
}
}
]
}
},
"_source": [
"title"
],
"size": 30
}
现在我需要找到如何添加跟随逻辑
OR (description LIKE '%html%' AND description LIKE '%css%')
重要的一点是,我只需要获取标题或中断中包含两个单词的文档。我不想获取只有 1 个单词的文档。
我会在发现更多信息时更新问题。
更新:选择的答案还提供了一种基于该领域提高得分的方法。
【问题讨论】:
标签: elasticsearch