首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch语言分析器-文本分析后返回检索的字段

Elasticsearch语言分析器-文本分析后返回检索的字段
EN

Stack Overflow用户
提问于 2020-06-29 13:05:48
回答 2查看 289关注 0票数 0
  1. 我正在开发弹性搜索的全文搜索引擎,并在索引时间内使用多语种数据。我使用elasticsearch进行文本分析,并且希望能够在预处理之后返回令牌(检索到的索引)。我知道Analyze,但是对+200.000文档这样做很费时。我发现了“术语聚合”,但我不知道它是如何工作的。有什么主意吗?

  1. i在映射语言分析器中使用。在使用语言分析器时是否有现成的语言检测,或者每个文档都经过每个语言分析器?如果是这样,那么使用语言检测并为每种语言创建多个字段是否有意义?在设置中或在映射中使用语言分析器有什么不同?

代码语言:javascript
复制
PUT /index_sample
{
  "settings": {
    "analysis" : {
      "analyzer" : {
        "my_analyzer" : {
          "type" : "custom",
          "tokenizer" : "standard",
          "filter" : [
            "my_asciifolding",
            "my_apostrophe",
            "cjk_bigram"]
        }
      },
      "filter" : {
        "my_asciifolding" : {
          "type" : "asciifolding",
          "preserve_original" : true
        },
        "my_apostrophe" :{
        "type" : "apostrophe"
        }
      }
    }
  },
  "mappings" : {
    "properties": {
      "category_number" : {
        "type" : "integer",
        "fields" : {
          "raw" : {
          "type" : "keyword"
          }
        }
      },
      "product": {
        "type" : "text",
        "index" : "true",
        "store" : "true",
        "analyzer" : "my_analyzer",
        "fields" : {
          "german_field": {
            "type" : "text",
            "analyzer": "german"
          },
          "english_field" : {
            "type" : "text",
            "analyzer" : "english"
          },
          "chinese_field" : {
            "type" : "text",
            "analyzer" : "smartcn"
          },
          "spanish_field": {
            "type" : "text",
            "analyzer" : "spanish"
          },
          "czech_analyer" : {
            "type" : "text",
            "analyzer" : "czech"
          },
          "french_field": {
            "type" : "text",
            "analyzer" : "french"
          },
          "italian_field" : {
            "type" : "text",
            "analyzer" : "italian"
          },
          "dutch_field": {
            "type" : "text",
            "analyzer" : "dutch"
          },
          "portuguese_field": {
            "type" : "text",
            "analyzer" : "portuguese"
          }
        }  
      }
    }
  }
}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-30 05:56:19

如果您想要查看您的索引字段看起来如何,可以使用_analyse API (我认为您不想使用)。

或者你可以看看_termvectors

代码语言:javascript
复制
GET /<index_name>/_termvectors/<doc_id>?fields=<filed_name>
票数 1
EN

Stack Overflow用户

发布于 2020-06-30 06:04:03

回答你的第二个问题

在设置和映射中使用语言分析器有什么不同?

索引/_设置/分析器:为索引定义分析器

一旦定义了ur分析器,那么在映射中您就可以定义如何和何时使用此分析器。

analyzer与特定字段相关联,可在索引时或搜索时使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62638814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档