我一直在使用不同类型的标记器进行测试和演示.我需要检查如何使用不同的标记化器对特定文本字段进行标记,并查看生成的标记.
我怎样才能做到这一点?
您可以将_analyze端点用于此目的.
例如,使用标准分析仪,您可以this is a test像这样分析
curl -XGET 'localhost:9200/_analyze?analyzer=standard&pretty' -d 'this is a test'
Run Code Online (Sandbox Code Playgroud)
这会产生以下令牌:
{
"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
} ]
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用任何现有分析器,也可以使用tokenizer参数指定标记器,使用token_filters参数的标记过滤器和使用参数的字符过滤器char_filters.例如,curl -XGET 'localhost:9200/_analyze?tokenizer=keyword&token_filters=lowercase&char_filters=html_strip' -d 'THIS is a <b>TEST</b>'使用标准分析器,keyword标记生成器,lowercase令牌过滤器和html_strip字符过滤器分析HTML会产生这种情况,即没有HTML标记的小写单个标记:
curl -XGET 'localhost:9200/_analyze?tokenizer=keyword&token_filters=lowercase&char_filters=html_strip' -d 'THIS is a <b>TEST</b>'
{
"tokens" : [ {
"token" : "this is a test",
"start_offset" : 0,
"end_offset" : 21,
"type" : "word",
"position" : 1
} ]
}
Run Code Online (Sandbox Code Playgroud)
除了 @Val 提到的之外,如果您打算研究标记化器的工作,您可以尝试术语向量。您可以尝试类似的方法来检查某个领域中发生的标记化
GET /index-name/type-name/doc-id/_termvector?fields=field-to-be-examined
Run Code Online (Sandbox Code Playgroud)
要了解有关标记器及其操作的更多信息,您可以参考此博客
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |