【问题标题】:Elastic: Error when try to initialize synonym token filter弹性:尝试初始化同义词标记过滤器时出错
【发布时间】:2019-05-10 07:29:31
【问题描述】:

同义词标记过滤器出错。

Elasticsearch 版本 版本:6.2.2,内部版本:10b1edd/2018-02-16T19:01:30.685723Z,JVM:1.8.0_161

已安装插件: 打开nlp

JVM 版本 java版本“1.8.0_161” Java(TM) SE 运行时环境 (build 1.8.0_161-b12) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.161-b12,混合模式)

操作系统版本 Linux 服务器 4.4.0-131-generic #157-Ubuntu SMP Thu Jul 12 15:51:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

问题描述,包括预期行为与实际行为

当我尝试重现以下内容时:https://qbox.io/blog/synonym-token-filter-wordnet-applications

但是,如果我将标记器更改为“标准”而不是“小写”,一切都很好。有人知道该怎么做吗?

我收到以下错误。

错误:400 - 无法构建同义词 ES 堆栈跟踪:

类型:非法参数异常 原因:构建同义词失败

复制步骤

curl -XPUT 'localhost:9200/test_index' -d '{
 "analysis": {
    "filter": {
      "synonym": {
        "type": "synonym",
        "format": "wordnet",
        "synonyms_path": "analysis/wn_s.pl"
      }
    },
    "analyzer": {
      "wordnet-synonym-analyzer": {
        "tokenizer": "lowercase",
        "filter": [
          "synonym"
        ]
      }
    }
  }
}'

【问题讨论】:

  • 同义词在 synonyms_path 中的放置是否正确?
  • 路径正确。如果我使用tokenizer = "standard,一切正常

标签: elasticsearch


【解决方案1】:

试试这个:

使用标准分词器并添加小写作为过滤器。

"analyzer": {
  "synonymAnalyzer": {
    "type": "custom",
    "tokenizer": "standard",
    "filter": [
      "lowercase",
      "synonym"
    ]
  }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
相关资源
最近更新 更多