这也就是说,match查询的一个主要用途是进行全文搜索。让我们通过一个小例子来看一下全文搜索是如何工作的。

    索引一些数据

    首先,我们使用bulk API来创建和索引一些文档:

    // SENSE: 100_Full_Text_Search/05_Match_query.json

    <1> 删除已经存在的索引(如果索引存在)

    单词查询

    第一个例子解释了当使用match查询进行单词全文搜索时发生了什么:

    // SENSE: 100_Full_Text_Search/05_Match_query.json

    Elasticsearch通过下面的步骤执行match查询:

    1. 检查field类型
      title字段是一个字符串(),所以该查询字符串也需要被分析(analyzed)

    2. 找到匹配的文档
      term查询在倒排索引中搜索quick,并且返回包含该词的文档。在这个例子中,返回的文档是1,2,3。

    这个过程之后我们将得到以下结果(简化后):

    <1> 文档1最相关,因为 title 最短,意味着在语义中起比较大的作用。