<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 簡介 es在對文檔進行倒排索引的需要用分析器(Analyzer)對文檔進行分析、建立索引。從文檔中提取詞元(Token)的算法稱為分詞器(Tokenizer),在分詞前預處理的算法稱為字符過濾器(Character Filter),進一步處理詞元的算法稱為詞元過濾器(Token Filter),最后得到詞(Term)。這整個分析算法稱為分析器(Analyzer)。 其工作流程: 1. 先會使用字符過濾器CharacterFilters對文檔中的不需要的字符過濾(例如html語言的`<br/>`等等) 2. 用Tokenizer分詞器大段的文本分成詞(Tokens)(例如可以空格基準對一句話進行分詞) 3. 最后用TokenFilter在對分完詞的Tokens進行過濾、處理(比如除去英文常用的量詞:a,the,或者把去掉英文復數等) ![](https://img.kancloud.cn/d3/e7/d3e7a56108becc18df3067c85205502b_922x95.png) 我們可以使用`_analyze`來看es的分詞是不是符合我們的預期目標 # 查看分析器效果 ~~~ GET /blog/_analyze { "text": "Her(5) a Black-cats" } GET /blog/_analyze { "text": "Her(5) a Black-cats" , "analyzer": "english" } ~~~ 當然es的強大之處在于除了內置的分詞器之外,我們可以自定義分析器,通過組裝CharacterFilters、Tokenizer、TokenFilter三個不同組件來自定義分析器或者可以使用別人完成的分析器,最出名的就是ik中文分詞插件。 除此之外我們也可以CharacterFilters、Tokenizer、TokenFilter進行自定義。 # 自定義分析器 作為示范,讓我們一起來創建一個自定義分析器吧,這個分析器可以做到下面的這些事: 1. 使用 html清除 字符過濾器移除HTML部分。 2. 使用一個自定義的 映射 字符過濾器把 & 替換為 " and " : ~~~ "char_filter": { "&_to_and": { "type": "mapping", "mappings": [ "&=> and "] } } ~~~ 3. 使用 標準 分詞器分詞。 4. 小寫詞條,使用 小寫 詞過濾器處理。 5. 使用自定義 停止 詞過濾器移除自定義的停止詞列表中包含的詞: ~~~ "filter": { "my_stopwords": { "type": "stop", "stopwords": [ "the", "a" ] } } ~~~ 我們的分析器定義用我們之前已經設置好的自定義過濾器組合了已經定義好的分詞器和過濾器: ~~~ "analyzer": { "my_analyzer": { "type": "custom", "char_filter": [ "html_strip", "&_to_and" ], "tokenizer": "standard", "filter": [ "lowercase", "my_stopwords" ] } } ~~~ 匯總起來,完整的 創建索引 請求 看起來應該像這樣: ~~~ PUT /my_index { "settings": { "analysis": { "char_filter": { "&_to_and": { "type": "mapping", "mappings": [ "&=> and "] }}, "filter": { "my_stopwords": { "type": "stop", "stopwords": [ "the", "a" ] }}, "analyzer": { "my_analyzer": { "type": "custom", "char_filter": [ "html_strip", "&_to_and" ], "tokenizer": "standard", "filter": [ "lowercase", "my_stopwords" ] }} }}} ~~~ 索引被創建以后,使用 analyze API 來 測試這個新的分析器: ~~~ GET /my_index1/_analyze { "analyzer":"my_analyzer", "text": "The quick & brown fox" } ~~~ 拷貝為 CURL在 SENSE 中查看 下面的縮略結果展示出我們的分析器正在正確地運行: ~~~ { "tokens": [ { "token": "quick", "start_offset": 4, "end_offset": 9, "type": "<ALPHANUM>", "position": 1 }, { "token": "and", "start_offset": 10, "end_offset": 11, "type": "<ALPHANUM>", "position": 2 }, { "token": "brown", "start_offset": 12, "end_offset": 17, "type": "<ALPHANUM>", "position": 3 }, { "token": "fox", "start_offset": 18, "end_offset": 21, "type": "<ALPHANUM>", "position": 4 } ] } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看