文本中包含许多文本处理步骤,比如:分词,大写转小写,词干化,同义词转化和许多的文本处理. 文本分析既用于索引时对一文本域的处理,也用于查询时查询字符串的文本处理.文本处理对搜索引擎的搜索结果有着重要的影响,特别是对如召回率的影响. 文本分析是将一个文本域的值转化为一个词序列.词是Lucene实际索引和搜索时的最小单元.分析作用于索引时原始的输入值,将转化后的词顺序保存到Lucene的索引结构中.文本分析也同样作用于查询时所输入的查询串中的查询词和查询短语,转化后的词将用于查询Lucene的索引.…
1.为什么要配置? 1.我们知道要使用Solr进行搜索,肯定要对词语进行分词,但是由于Solr的analysis包并没有带支持中文的包或者对中文的分词效果不好,需要自己添加中文分词器:目前呼声较高的是IKAnalyzer中文分词器,其他的还没有对比过,等以后有空了再说. 2.如何配置 1).下载IK Analyzer 2012FF_hf1.zip压缩包.下载网址:http://code.google.com/p/ik-analyzer/downloads/list 2).解压压缩包,把IKAna…
首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档.如果字段值是一个文本.你如果只搜索这个字段的某个单词,是不是发现搜不到? 这就是因为我们没有配置Analyzer,因此在搜索的时候会“全匹配”.可以从直观感觉上理解为SQL的  like和= 的区别. 通过前面这段引文,我们就能知道:Analyzer就是分析我们的文本的. 一般来说:solr.TextField类型的字段才需要分析器. 最简单的配置分析器的如下:   <fieldType name="nam…
首先,不知道大家在前面的例子中没有试着搜索文本串,就是在第二节,我们添加了很多文档.如果字段值是一个文本.你如果只搜索这个字段的某个单词,是不是发现搜不到? 这就是因为我们没有配置Analyzer,因此在搜索的时候会“全匹配”.可以从直观感觉上理解为SQL的  like和= 的区别. 通过前面这段引文,我们就能知道:Analyzer就是分析我们的文本的. 一般来说:solr.TextField类型的字段才需要分析器. 最简单的配置分析器的如下: <fieldType name="namet…
语言分析器(Analyzer) 这部分包含了分词器(tokenizer)和过滤器(filter)关于字符转换和使用指定语言的相关信息.对于欧洲语言来说,tokenizer是相当直接的,Tokens被空格或者是一个简单的连接字符设置分隔的.在其他语言中,分词规则就不是那么简单了,一些欧洲语言也可能指定一些特殊的分词规则,如分解德国语言的规则. 关于在索引时的语言探测,参考Detecting Languages During Indexing. KeyWordMarkerFilterFactory…
分词器的核心类: Analyzer:分词器 TokenStream: 分词器做优点理之后得到的一个流.这个流中存储了分词的各种信息,能够通过TokenStream有效的获取到分词单元. 下面是把文件流转换成分词流(TokenStream)的过程 首先,通过Tokenizer来进行分词,不同分词器有着不同的Tokenzier,Tokenzier分完词后,通过TokenFilter对已经分好词的数据进行过滤,比方停止词.过滤完之后,把全部的数据组合成一个TokenStream:下面这图就是把一个re…
一.WhitespaceAnalyzer 以空格作为切词标准,不对语汇单元进行其他规范化处理.很明显这个实用英文,单词之间用空格. 二.SimpleAnalyzer 以非字母符来分割文本信息,并将语汇单元统一为小写形式,并去掉数字类型的字符.很明显不适用于中文环境. 三.StopAnalyzer 停顿词分析器会去除一些常有a,the,an等等,也可以自定义禁用词,不适用于中文环境 四.StandardAnalyzer 标准分析器是Lucene内置的分析器,会将语汇单元转成小写形式,并去除停用词及…
参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html 在全文搜索(Fulltext Search)中,词(Term)是一个搜索单元,表示文本中的一个词,标记(Token)表示在文本字段中出现的词,由词的文本.在原始文本中的开始和结束偏移量.以及数据类型等组成.ElasticSearch 把文档数据写到倒排索引(Inverted Index)的结构中,倒排索引建立词(T…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.ES 中的 IK 分词器能分中文和英语的原因是什么? ik分词器为中文分词器,默认可对中文分词:通过 Setting API 构造analyzer(字符过滤),可以对IK中文分词器做一些修改,让它实现回溯词根,从而实现真正的英文分词. ES默认有8个 analyzer. 2.IK分词器的类型? Ik_smart分词器 和 ik_max_word 分词器 最粗粒度最细粒度 3.ES中怎么进行拼音的分…
Elasticsearch Analyzer 内置分词器 篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识 es 提供了 analyze api 可以方便我们快速的指定 某个分词器 然后对输入的text文本进行分词 帮助我们学习和实验分词器 POST _analyze { "analyzer": "standard", "text": "The 2 QUI…