Completion Suggester TokenStream扩展错误

时间:2015-11-09 20:41:07

标签: elasticsearch

我正在使用ES 1.7.2。我的分析器为filled_by_suggest字段

 "company_analyzer": {
    "tokenizer": "whitespace",
    "filter": [
      "shingle_filter"
    ]
  }

shingle filter

"shingle_filter": { 
    "type": "shingle", 
    "min_shingle_size": 2, 
    "max_shingle_size": 5
   }

字段映射

"filed_by_suggest" : {"type" : "completion", "analyzer" : "company_analyzer"}

当我这样做时

PUT my_index/my_type/1
{
  "filed_by_suggest": "timothy M  Hogan - AZ Ctr  for Law in the Public Interest"
}

我得到以下错误

{
   "error": "IllegalArgumentException[TokenStream expanded to 1793 finite strings. Only <= 256 finite strings are supported]",
   "status": 500
}

但是当我尝试索引像

这样的较大字符串时
PUT my_index/my_type/1
{
  "filed_by_suggest": "alliance telecommunications corp., hector communications corporation, golden west telecommunications cooperative, inc., splitrock telecom coop., inc., ollig utilities co., sioux valley telephone co., hills telephone co. inc., sleepy eye te"
}

此操作成功。我对完成建议器内部使用的 FST 有所了解。

有谁能请解释如何扩展令牌以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这取决于您的分析仪。

输入字符串将由分析器拆分为令牌,您可以使用_analyze API测试和计算令牌。