短语搜索,高亮搜索

接着上节: http://www.cnblogs.com/spectrelb/p/7977051.html

短语搜索

找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者短语 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock”  “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着的雇员记录。

为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询

GET /megacorp/employee/_search
{
  "query": {
    "match_phrase": {
      "about": "rock climbing"
    }
  }
}

 结果:

{
  "took": 8,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.53484553,
    "hits": [
      {
        "_index": "megacorp",
        "_type": "employee",
        "_id": "1",
        "_score": 0.53484553,
        "_source": {
          "first_name": "John",
          "last_name": "Smith",
          "age": 25,
          "about": "I love to go rock climbing",
          "interests": [
            "sports",
            "music"
          ]
        }
      }
    ]
  }
}

 

高亮搜索

许多应用都倾向于在每个搜索结果中 高亮 部分文本片段,以便让用户知道为何该文档符合查询条件。在 Elasticsearch 中检索出高亮片段也很容易。

再次执行前面的查询,并增加一个新的 highlight 参数

GET /megacorp/employee/_search
{
  "query": {
    "match_phrase": {
      "about": "rock climbing"
    }
  },
  "highlight": {
    "fields" : {
      "about" : {}
    }
  }
}

结果:

{
  "took": 27,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.53484553,
    "hits": [
      {
        "_index": "megacorp",
        "_type": "employee",
        "_id": "1",
        "_score": 0.53484553,
        "_source": {
          "first_name": "John",
          "last_name": "Smith",
          "age": 25,
          "about": "I love to go rock climbing",
          "interests": [
            "sports",
            "music"
          ]
        },
        "highlight": {
          "about": [
            "I love to go <em>rock</em> <em>climbing</em>"
          ]
        }
      }
    ]
  }
}

  

时间: 2024-10-14 05:19:00

短语搜索,高亮搜索的相关文章

高亮搜索结果(highlighting our searches)

很多的应用喜欢高亮所搜结果文档中符合搜索条件的片段特别显示,用来提醒用户为什么搜索结果文档符合他们的搜索条件.这个在ES中也是很容易实现的. 如下: GET /megacorp/employee/_search{    "query":{        "match_phrase":{            "about":"rock climbing"        }    },    "highlight&qu

Elasticsearch 5.1.1搜索高亮及Java API实现

5.1.1的搜索高亮和2.X有所变化,但是变化不大.下面分四步来介绍:创建索引(设置mapping/IK分词).索引文档.REST API的搜索高亮.JAVA API的搜索高亮. 注:从这篇博客开始,采用简写的代码风格,也就是Sence插件或者kibana的dev tools中采用的风格.(温馨提示:安装kibana 5.1.1,在dev tools中直接可以使用简单格式命令.) 一.创建索引 文档结构为blog/article/id.先创建一个空的index: PUT blog 创建mappi

纯客户端页面关键字搜索高亮jQuery插件

一.效果抢鲜展示 此插件是我今天下午写的,为了直观地看到是个什么东东,先展示效果,您可以狠狠地点击这里:搜索页面文字jQuery插件Demo 下图为Demo页面的两个测试截图 – 测试页面HTML代码取自豆瓣网帮助页面: 下载 您可以狠狠地点击这里:jquery.textSearch-1.0.js 文件较小,功能简单,恕不打包~~ 二.功能简述 从上图也应该看出来了,就是对HTML页面上的文字内容进行高亮标记,这个可以用在内容搜索上.纯粹的客户端程序,与后台一点瓜葛都没有. 三.如何使用 使用方

记忆化搜索(搜索+dp思想)

一:简介 (1)记忆化搜索 即 搜索+动态规划数组记录上一层计算结果,避免过多的重复计算 算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存:一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态.更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多. 记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了. 这种方法综合了搜索和动态规划两方面的

创建二叉树 树的深度搜索 广度搜索

树的深度搜索 与树的前序遍历同理 根节点->左孩子->右孩子  树的广度搜索 与树的层次遍历同理 一层一层遍历内容 深度搜索 采用stack的适配器 先进后出原则  而广度搜索采用的queue适配器 先进先出原则 二者正好满足 搜索需求 简要代码如下: #include <iostream> #include <stack> #include <queue> #include <malloc.h> using namespace std; typ

POJ 2196 Computer(搜索-深度优先搜索)

Computer Problem Description A school bought the first computer some time ago(so this computer's id is 1). During the recent years the school bought N-1 new computers. Each new computer was connected to one of settled earlier. Managers of school are

Google 谷歌网页搜索, 学术搜索

Google 谷歌网页搜索, 学术搜索 1. 网页搜索引擎-Google * https://letsgg.tk/ * https://google.kfd.me/ 谷歌搜索镜像:  http://dir.scmor.com/google/ 2. 学术搜索引擎,包括谷歌,百度,微软...等  --网址: http://guog.org/ 3. Google Github 代码搜索 谷歌和GitHub宣布,谷歌BigQuery现在为GitHub上280多万个托管开源项目提供了一个完整的快照.这让用

关键字搜索高亮jQuery插件

// textSearch.js v1.0 文字,关键字的页面纯客户端搜索// 2010-06-23 修复多字母检索标签破碎的问题// 2010-06-29 修复页面注释显示的问题// 2013-05-07 修复继续搜素关键字包含之前搜索关键字没有结果的问题// 不论何种情况,务必保留作者署名. (function($){ $.fn.textSearch = function(str,options){ var defaults = { divFlag: true, divStr: " &quo

ios: WebView内高亮搜索

由于webview 加载的是网页 只能用js 进行页内查找  废话不说上代码 // 注入 JS 查找 NSString *resPath = [[NSBundle mainBundle] resourcePath]; static NSString *jsQuery = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ jsQuery = [NSString stringWithContentsOfFile:[