五褂删、Es分詞,_analyze

分析數(shù)據(jù)

  • 使用分析器分析文檔
  • 使用分析API
  • 分詞
  • 字符過(guò)濾器
  • 分詞過(guò)濾器
  • 提取詞干
  • es所包含的分析器

1尺迂、什么是分析
在文檔被發(fā)送并加入倒排索引之前笤妙,Es在主體上進(jìn)行的操作;
a噪裕、字符過(guò)濾器: 使用字符過(guò)濾轉(zhuǎn)變字符
b蹲盘、 分詞器:文本切分為分詞,將文本切分為單個(gè)或多分分詞
c膳音、分詞過(guò)濾器: 使用分詞過(guò)濾器轉(zhuǎn)變分詞
d召衔、分詞索引: 將這些分詞存儲(chǔ)到索引中
e、分析流程圖:

原始文本數(shù)據(jù)——>字符過(guò)濾器——>分詞器——>分詞過(guò)濾器——>文檔索引(倒排索引)
  • analyzer 分析器類型:

         standard analyzer   standard    standard tokenizer, standard filter, lower case filter, stop filter
         simple analyzer     simple      lower case tokenizer【小寫轉(zhuǎn)換分詞過(guò)濾器】
         stop analyzer       stop        lower case tokenizer, stop filter【停用詞分詞過(guò)濾器】
         keyword analyzer    keyword     不分詞祭陷,內(nèi)容整體作為一個(gè)token(not_analyzed)
         pattern analyzer    whitespace  正則表達(dá)式分詞苍凛,默認(rèn)匹配\W+
         language analyzers  lang        各種語(yǔ)言
         snowball analyzer   snowball    standard tokenizer, standard filter, lower case filter, stop filter, snowball filter
         custom analyzer     custom      一個(gè)Tokenizer, 零個(gè)或多個(gè)Token Filter, 零個(gè)或多個(gè)Char Filter
    
  • tokenizer 分詞器類型

         standard tokenizer      standard
         edge ngram tokenizer    edgeNGram
         keyword tokenizer       keyword         不分詞
         letter analyzer         letter          按單詞分
         lowercase analyzer      lowercase       letter tokenizer, lower case filter
         ngram analyzers         nGram
         whitespace analyzer     whitespace      以空格為分隔符拆分
         pattern analyzer        pattern         定義分隔符的正則表達(dá)式
         uax email url analyzer  uax_url_email   不拆分url和email
         path hierarchy analyzer path_hierarchy  處理類似/path/to/somthing樣式的字符串
    
  • token filter 分詞過(guò)濾器類型

          standard filter         standard
          ascii folding filter    asciifolding
          length filter           length          去掉太長(zhǎng)或者太短的
          lowercase filter        lowercase       轉(zhuǎn)成小寫
          ngram filter            nGram
          edge ngram filter       edgeNGram
          porter stem filter      porterStem      波特詞干算法
          shingle filter          shingle         定義分隔符的正則表達(dá)式
          stop filter             stop            移除 stop words
          word delimiter filter   word_delimiter  將一個(gè)單詞再拆成子分詞
          stemmer token filter    stemmer
          stemmer override filter stemmer_override
          keyword marker filter   keyword_marker
          keyword repeat filter   keyword_repeat
          kstem filter            kstem
          snowball filter         snowball
          phonetic filter         phonetic        插件
          synonym filter          synonyms        處理同義詞
          compound word filter    dictionary_decompounder, hyphenation_decompounder   分解復(fù)合詞
          reverse filter          reverse         反轉(zhuǎn)字符串
          elision filter          elision         去掉縮略語(yǔ)
          truncate filter         truncate        截?cái)嘧址?      unique filter           unique
          pattern capture filter  pattern_capture
          pattern replace filte   pattern_replace 用正則表達(dá)式替換
          trim filter             trim            去掉空格
          limit token count filter    limit       限制token數(shù)量
          hunspell filter         hunspell        拼寫檢查
          common grams filter     common_grams
          normalization filter    arabic_normalization, persian_normalization
    
  • char_filter 字符過(guò)濾器類型

         mapping char filter         mapping         根據(jù)配置的映射關(guān)系替換字符
         html strip char filter      html_strip      去掉HTML元素
         pattern replace char filter pattern_replace 用正則表達(dá)式處理字符串
    

2趣席、自定義分析器
包含零個(gè)或多個(gè)字符過(guò)濾器、1個(gè)分詞器醇蝴、零個(gè)或多個(gè)分詞過(guò)濾器
注意:

match和match_phrase這樣的查詢?cè)趫?zhí)行之前會(huì)執(zhí)行分析步驟宣肚,而term和terms不會(huì)

3、為文檔使用分詞器
3.1悠栓、在創(chuàng)建索引的時(shí)候添加分詞器

public static function index()
{
    return [
        'index' => 'order',
        'body' => [
            'settings' => [
                'number_of_shards' => 2,
                'number_of_replicas' => 1,
                "index" => [
                    'analysis' => [
                        'analyzer' => [
                            'myAnalyzer' => [
                                //定制化的類型
                                'type' => 'custom',
                                //使用myTokenizer對(duì)文本進(jìn)行分詞
                                'tokenizer' => 'myTokenizer',
                                //指定文本需要經(jīng)過(guò)的兩個(gè)過(guò)濾器
                                'filter' => [
                                    'myFilter1', 'myFilter2',
                                ],
                                //設(shè)置制定的字符過(guò)濾器霉涨,會(huì)在其他分析步驟之前運(yùn)行
                                'char_filter' => [
                                    'myCharFilter',
                                ],
                            ],
                        ],
                        //分詞器
                        'tokenizer' => [
                            'myTokenizer' => [
                                'type' => 'letter'
                            ],
                        ],
                        //分詞過(guò)濾器
                        'filter' => [
                            'myFilter1' => [
                                'type' => 'lowercase',
                            ],
                            'myFilter2' => [
                                'type' => 'kstem',
                            ],
                        ],
                        //字符過(guò)濾器
                        'char_filter' => [
                            'myCharFilter' => [
                                'type' => 'mapping',
                                'mappings' => [
                                    "ph=>f", "u=>you",
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'mappings' => [...],
        ]
    ];
}

3.2、在映射中指定某個(gè)字段的分析器

3.3惭适、在Elasticsearch的配置文件中設(shè)置全局的分析器

4笙瑟、使用分析API來(lái)分析文本

  • _analyze
    API允許向Es發(fā)送任何文本,制定所使用的分析器癞志,分詞器或者分詞過(guò)濾器往枷,然后獲取分析之后的分詞
    a、選擇一個(gè)分析器
    b凄杯、通過(guò)組合即興的創(chuàng)建分析其器
    c错洁、基于某個(gè)字段映射的分析

5、使用詞條向量來(lái)學(xué)習(xí)索引詞條

  • _termvector
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盾舌,一起剝皮案震驚了整個(gè)濱河市墓臭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妖谴,老刑警劉巖窿锉,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異膝舅,居然都是意外死亡嗡载,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門仍稀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洼滚,“玉大人,你說(shuō)我怎么就攤上這事技潘∫0停” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵享幽,是天一觀的道長(zhǎng)铲掐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)值桩,這世上最難降的妖魔是什么摆霉? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上携栋,老公的妹妹穿的比我還像新娘搭盾。我一直安慰自己,他們只是感情好婉支,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布鸯隅。 她就那樣靜靜地躺著,像睡著了一般向挖。 火紅的嫁衣襯著肌膚如雪滋迈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天户誓,我揣著相機(jī)與錄音,去河邊找鬼幕侠。 笑死帝美,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晤硕。 我是一名探鬼主播悼潭,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舞箍!你這毒婦竟也來(lái)了舰褪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疏橄,失蹤者是張志新(化名)和其女友劉穎占拍,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捎迫,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晃酒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窄绒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贝次。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖彰导,靈堂內(nèi)的尸體忽然破棺而出蛔翅,到底是詐尸還是另有隱情,我是刑警寧澤位谋,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布山析,位于F島的核電站,受9級(jí)特大地震影響倔幼,放射性物質(zhì)發(fā)生泄漏盖腿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翩腐。 院中可真熱鬧鸟款,春花似錦、人聲如沸茂卦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)等龙。三九已至处渣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛛砰,已是汗流浹背罐栈。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泥畅,地道東北人荠诬。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像位仁,于是被迫代替她去往敵國(guó)和親柑贞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349