在ElasticSearch中的多个字段上进行单词和短语搜索

慕尼黑农

我想通过ElasticSearch使用Python搜索文档。我正在寻找三个字段中任何一个包含单词和/或短语的文档。

GET /my_docs/_search
{
  "query": {
    "multi_match": {
      "query": "Ford \"lone star\"",
      "fields": [
        "title",
        "description",
        "news_content"
      ],
      "minimum_should_match": "-1",
      "operator": "AND"
    }
  }
}

在上面的查询中,我想获取标题,描述或news_content包含“ Ford”和“ lone star”(作为短语)的文档。

但是,似乎没有将“孤星”视为一个短语。它返回带有“ Ford”,“ lone”和“ star”的文档。

Elasticsearch忍者

因此,我能够重现您的问题并使用Elasticsearch的REST API解决了该问题,因为我不熟悉python语法,并且很高兴您以JSON格式提供了搜索查询,因此我在此基础上构建了解决方案。

索引定义

{
    "mappings": {
        "properties": {
            "title": {
                "type": "text"
            },
            "description" :{
                "type" : "text"
            },
            "news_content" : {
                "type" : "text"
            }
        }
    }
}

样本文档

{
  "title" : "Ford",
  "news_content" : "lone star", --> note this matches your criteria
  "description" : "foo bar"
}

{
  "title" : "Ford",
  "news_content" : "lone",
  "description" : "star"
}

您正在寻找的搜索查询

{
    "query": {
        "bool": {
            "must": [ --> note this, both clause must match
                {
                    "multi_match": {
                        "query": "ford",
                        "fields": [
                            "title",
                            "description",
                            "news_content"
                        ]
                    }
                },
                {
                    "multi_match": {
                        "query": "lone star",
                        "fields": [
                            "title",
                            "description",
                            "news_content"
                        ],
                        "type": "phrase" --> note `lone star` must be phrase
                    }
                }
            ]
        }
    }
}

结果仅包含样本中的一个文档

"hits": [
      {
        "_index": "so_phrase",
        "_type": "_doc",
        "_id": "1",
        "_score": 0.9527341,
        "_source": {
          "title": "Ford",
          "news_content": "lone star",
          "description": "foo bar"
        }
      }
    ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elasticsearch:无法在多个字段上进行过滤

来自分类Dev

ElasticSearch在多个字段上进行过滤(具有聚集)

来自分类Dev

在Kibana / ElasticSearch中搜索多个字段

来自分类Dev

Lucene.NET-与AND在多个字段中搜索多个单词

来自分类Dev

选择查询以在Solr中的多个字段中使用2个或多个不带双引号的单词进行搜索

来自分类Dev

如何使用ElasticSearch和CURL请求在多个字段中搜索?

来自分类Dev

在具有模糊匹配的多个字段上进行弹性搜索,并在多个字段的综合得分上进行排序

来自分类Dev

如何对SQL中多个字段的搜索进行排序和过滤

来自分类Dev

如何对SQL中多个字段的搜索进行排序和过滤

来自分类Dev

ElasticSearch并在PHP中搜索多个字段

来自分类Dev

如何在Elasticsearch中搜索数组的多个字段

来自分类Dev

ElasticSearch并在PHP中搜索多个字段

来自分类Dev

在elasticsearch中,我试图用多个值对多个字段进行多重搜索,这可能吗?

来自分类Dev

使用nest在Elasticsearch中将短语查询与多个字段匹配

来自分类Dev

Postgres全文搜索:如何在多个字段中搜索多个单词?

来自分类Dev

使用Elasticsearch在多个字段上搜索

来自分类Dev

在弹性搜索中的多个字段中使用多个参数进行搜索

来自分类Dev

在not_analyzed字段上进行Elasticsearch通配符搜索

来自分类Dev

在多个字段上进行客户端验证

来自分类Dev

在多个字段上进行透视并从Access中导出

来自分类Dev

如何使用QuerySets和MySql“全文搜索”在多个字段中进行Django搜索?

来自分类Dev

MongoDB:在多个字段上进行单个更新V / S在单个字段上进行多个更新?

来自分类Dev

如何在Google Ngrams中搜索“过时的”单词和短语?

来自分类Dev

在Elasticsearch中,如何从多层嵌套对象的多个字段中搜索字符串

来自分类Dev

在elasticsearch中搜索由or子句划分的嵌套文档中的多个字段

来自分类Dev

SOLR:在多个字段中搜索值

来自分类Dev

从多个字段中搜索查询MySQL

来自分类Dev

在多个字段中搜索单个值

来自分类Dev

如何从多个字段中搜索?

Related 相关文章

  1. 1

    Elasticsearch:无法在多个字段上进行过滤

  2. 2

    ElasticSearch在多个字段上进行过滤(具有聚集)

  3. 3

    在Kibana / ElasticSearch中搜索多个字段

  4. 4

    Lucene.NET-与AND在多个字段中搜索多个单词

  5. 5

    选择查询以在Solr中的多个字段中使用2个或多个不带双引号的单词进行搜索

  6. 6

    如何使用ElasticSearch和CURL请求在多个字段中搜索?

  7. 7

    在具有模糊匹配的多个字段上进行弹性搜索,并在多个字段的综合得分上进行排序

  8. 8

    如何对SQL中多个字段的搜索进行排序和过滤

  9. 9

    如何对SQL中多个字段的搜索进行排序和过滤

  10. 10

    ElasticSearch并在PHP中搜索多个字段

  11. 11

    如何在Elasticsearch中搜索数组的多个字段

  12. 12

    ElasticSearch并在PHP中搜索多个字段

  13. 13

    在elasticsearch中,我试图用多个值对多个字段进行多重搜索,这可能吗?

  14. 14

    使用nest在Elasticsearch中将短语查询与多个字段匹配

  15. 15

    Postgres全文搜索:如何在多个字段中搜索多个单词?

  16. 16

    使用Elasticsearch在多个字段上搜索

  17. 17

    在弹性搜索中的多个字段中使用多个参数进行搜索

  18. 18

    在not_analyzed字段上进行Elasticsearch通配符搜索

  19. 19

    在多个字段上进行客户端验证

  20. 20

    在多个字段上进行透视并从Access中导出

  21. 21

    如何使用QuerySets和MySql“全文搜索”在多个字段中进行Django搜索?

  22. 22

    MongoDB:在多个字段上进行单个更新V / S在单个字段上进行多个更新?

  23. 23

    如何在Google Ngrams中搜索“过时的”单词和短语?

  24. 24

    在Elasticsearch中,如何从多层嵌套对象的多个字段中搜索字符串

  25. 25

    在elasticsearch中搜索由or子句划分的嵌套文档中的多个字段

  26. 26

    SOLR:在多个字段中搜索值

  27. 27

    从多个字段中搜索查询MySQL

  28. 28

    在多个字段中搜索单个值

  29. 29

    如何从多个字段中搜索?

热门标签

归档