【发布时间】:2020-01-15 05:15:43
【问题描述】:
我有一个书籍索引,用于存储书籍的全文内容(删除了停用词,但这对我的问题并不重要)。 我有以下查询:
> GET /books/_search
> {
> "_source": {
> "includes": ["author", "title"]
> },
> "query": {
> "bool": {
> "should": [
> {
> "match_phrase": {
> "body": "all happy families are alike"
> }
> },
> {
> "match": {
> "body": "all happy families are alike"
> }
> }
> ]
> }
> }
> }
我得到所有具有最高分数的完整字符串的文档的匹配,然后,具有较低分数的那些具有一个或多个匹配术语的文档:第一个匹配是'Anna Karenina',得分非常高,然后是任何书籍'快乐','家庭'在里面。 我想获得什么:
- 如果文档与条件“match_phrase”匹配,则仅获取此 结果(即只得到安娜卡列尼娜,丢弃其余的)
- 否则,以降分列出所有匹配的文档(预期行为)
我很难找到获得第 1 点的方法。
【问题讨论】:
标签: elasticsearch match-phrase