苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 8613|回复: 5

[搜索引擎] 33-Elasticsearch 使用语言分析器

[复制链接]
发表于 2019-1-2 11:58:00 | 显示全部楼层 |阅读模式
使用语言分析器
Elasticsearch 的内置分析器都是全局可用的,不需要提前配置, 它们也可以在字段映射中直接指定在某字段上:
[C#] 纯文本查看 复制代码
PUT /my_index

{

  "mappings": {

    "blog": {

      "properties": {

        "title": {

          "type":     "string",

          "analyzer": "english" 

        }

      }

    }

  }

}



title 字段将会用 `english`(英语)分析器替换默认的 `standard`(标准)分析器

当然,文本经过 english 分析处理,我们会丢失源数据:

[C#] 纯文本查看 复制代码
GET /my_index/_analyze?field=title 

I'm not happy about the foxes



切词为: i'm`,`happi`,`about`,`fox

我们无法分辨源文档中是包含单数 fox 还是复数 foxes ;单词 not 因为是停用词所以被移除了, 所以我们无法分辨源文档中是happy about foxes还是not happy about foxes,虽然通过使用 english (英语)分析器,使得匹配规则更加宽松,我们也因此提高了召回率,但却降低了精准匹配文档的能力。

为了获得两方面的优势,我们可以使用multifields(多字段)对 title 字段建立两次索引: 一次使用 `english`(英语)分析器,另一次使用 `standard`(标准)分析器:
[C#] 纯文本查看 复制代码
PUT /my_index

{

  "mappings": {

    "blog": {

      "properties": {

        "title": { 

          "type": "string",

          "fields": {

            "english": { 

              "type":     "string",

              "analyzer": "english"

            }

          }

        }

      }

    }

  }

}



主 title 字段使用 `standard`(标准)分析器。



title.english 子字段使用 `english`(英语)分析器。

替换为该字段映射后,我们可以索引一些测试文档来展示怎么在搜索时使用两个字段:
[C#] 纯文本查看 复制代码
PUT /my_index/blog/1

{ "title": "I'm happy for this fox" }



PUT /my_index/blog/2

{ "title": "I'm not happy about my fox problem" }



GET /_search

{

  "query": {

    "multi_match": {

      "type":     "most_fields", 

      "query":    "not happy foxes",

      "fields": [ "title", "title.english" ]

    }

  }

}



使用most_fields query type(多字段搜索语法来)让我们可以用多个字段来匹配同一段文本。

感谢 title.english 字段的切词,无论我们的文档中是否含有单词 foxes 都会被搜索到,第二份文档的相关性排行要比第一份高, 因为在 title 字段中匹配到了单词 not 。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2019-1-2 15:34:31 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-2 17:04:08 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-2 17:47:24 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-3 17:13:58 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-1-8 13:32:36 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 15:37

© 2014-2021

快速回复 返回顶部 返回列表