如何检查在Elasticsearch中为不同的标记生成器生成的标记

时间:2015-06-19 05:18:05

标签: elasticsearch

我一直在使用不同类型的标记器进行测试和演示。我需要检查特定文本字段如何使用不同的标记化器进行标记,并且还要查看生成的标记。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以将_analyze endpoint用于此目的。

例如,使用标准分析器,您可以像这样分析this is a test

curl -XGET 'localhost:9200/_analyze?analyzer=standard&pretty' -d 'this is a test'

这会生成以下令牌:

{
  "tokens" : [ {
    "token" : "this",
    "start_offset" : 0,
    "end_offset" : 4,
    "type" : "<ALPHANUM>",
    "position" : 1
  }, {
    "token" : "is",
    "start_offset" : 5,
    "end_offset" : 7,
    "type" : "<ALPHANUM>",
    "position" : 2
  }, {
    "token" : "a",
    "start_offset" : 8,
    "end_offset" : 9,
    "type" : "<ALPHANUM>",
    "position" : 3
  }, {
    "token" : "test",
    "start_offset" : 10,
    "end_offset" : 14,
    "type" : "<ALPHANUM>",
    "position" : 4
  } ]
}

当然,您可以使用existing analyzers中的任何一个,还可以使用tokenizer参数指定标记符,使用token_filters参数指定标记过滤器,使用{{1}指定字符过滤器参数。例如,使用标准分析器分析HTML char_filterscurl -XGET 'localhost:9200/_analyze?tokenizer=keyword&token_filters=lowercase&char_filters=html_strip' -d 'THIS is a <b>TEST</b>'标记生成器,keyword标记过滤器和lowercase字符过滤器会生成此标记,即不带小写的单个标记HTML标记:

html_strip

答案 1 :(得分:3)

除了@Val所提到的,你可以尝试pyzmq r,如果你打算研究令牌器的工作。你可以尝试这样的东西只是为了检查字段中发生的令牌化< / p>

GET /index-name/type-name/doc-id/_termvector?fields=field-to-be-examined

要了解有关令牌制作者及其操作的更多信息,请参阅此term vecto