当前位置: 首页 > 知识库问答 >
问题:

如何在elasticsearch的设置中声明多个标记器

白翔
2023-03-14

我想创建一个搜索索引,其中包含我想要以下顺序的结果的属性:

  1. 首先,所有以搜索词开头的结果
  2. 然后所有包含搜索词的结果

为此,我想使用https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenizer.html

但是我的索引设置中已经有一个标记器kuromoji_tokenizer。

那么,我如何在设置中添加另一个标记器(然后在分析器中使用它),以便我可以实现上述scneario?

例如,在下面的json中,我可以向tokenzier添加另一个子项吗,或者tokenzier需要是一个数组?

"settings": {
    "analysis": {
      "analyzer": {
        "autocomplete": {
          "tokenizer": "autocomplete",
          "filter": [
            "lowercase"
          ]
        },
        "autocomplete_search": {
          "tokenizer": "lowercase"
        }
      },
      "tokenizer": {
        "autocomplete": {
          "type": "edge_ngram",
          "min_gram": 2,
          "max_gram": 10,
          "token_chars": [
            "letter"
          ]
        }
      }
    }
  }

共有1个答案

方季同
2023-03-14

我相信你可以,是的。只需将其添加到第一个标记旁边,不要创建数组,只需给它取另一个名称(在我的示例中,我将其称为“my\u other\u tokenizer”):

"settings": {
    "analysis": {
      "analyzer": {
        "autocomplete": {
          "tokenizer": "autocomplete",
          "filter": [
            "lowercase"
          ]
        },
        "autocomplete_search": {
          "tokenizer": "lowercase"
        }
      },
      "tokenizer": {
        "autocomplete": {
          "type": "edge_ngram",
          "min_gram": 2,
          "max_gram": 10,
          "token_chars": [
            "letter"
          ]
        },
        "my_other_tokenizer": {
          "type": "kuromoji_tokenizer",
          "mode": "extended",
          "discard_punctuation": "false",
          "user_dictionary": "userdict_ja.txt"
        }
      }
    }
  }

然后只需在analyzer设置中使用它,就像在第一个标记器中一样。

 类似资料:
  • 问题内容: 我正在使用django-uniform并使用一些统一功能,我正在寻找一种直接从表单声明中添加css类的方法(对于独立窗口小部件)。 (作为奖励,这里是我可重复使用的只读家庭自制混合片段……) 目前,我唯一的方法是在通用表单模板上添加一些javascript并手动添加类。 问题答案: 我发现此片段可能是一个不错的答案: 如何将CSS类和添加到必填字段的标签 这是适应我需要的内容(未经测试

  • 我正面临XML声明的问题。我想从XML文件中省略XML声明。为此,我在XSLT文件中编写了下面的代码。

  • 在Jenkins脚本管道中,您可以像这样设置PATH env变量: 注意这里解释的路径MAVENhttps://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-withenv代码集环境变量: 要设置的环境变量列表,每个变量的形式为VARIABLE=value或VARIABLE=以取消设置其他定义的变量。您还可以使用语法PATH wh

  • 问题内容: 我想在React Native的MapView上设置一个标记,但是我无法通过MapView的官方文档找到任何信息。 如果不允许这样做,如何在React Native中使用现有的react模块,例如react-googlemaps? 问题答案: 您可以使用道具设置标记。 例如:

  • 问题内容: 我要实现的目标是创建一个包含多个功能的模块。 module.js: 我的问题是,这是一个对象类型,而这是一个URL字符串,但是当我遇到该问题时,它总是抱怨该类型是错误的。 在这种情况下,如何声明多个module.exports? 问题答案: 您可以执行以下操作: 要不就: 然后在调用脚本中:

  • 这在这个回答中出现了,并且: 在Apple LLVM 9.1.0 CLANG-902-0.39.2中,的引用第一个并打印“1”。 GCC 8.2不接受此源文本。,抱怨:“错误:以前声明为'static‘的变量重新声明为'extern'”。 C 2018 6.2.2 4规定: 由于有两个先验声明,因此以下每个“if”子句的条件为真,第一个用于第一个先验声明,第二个用于第二个先验声明: ……如果前面声