使用弹性搜索的lowercase
标记生成器时,它会将文本转换为小写,并且每当遇到不是字母的字符时,也会将文本分解为术语。
在遇到非字母表时将文本分解为术语是我不想要的。
我查看了standard
和letter
标记符 - 尝试了一种构建自定义标记生成器的方法但是徒劳无功。
示例:当Postgres9
使用lowercase
标记生成器作为输入时,它会被转换为['postgres','9']
,但我需要的是['postgres9']
(转换为小写而不分割为非字母)
答案 0 :(得分:1)
您应该查看令牌过滤器。 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenfilters.html
这样的事情应该做:
POST _analyze
{
"tokenizer": "standard",
"filter": [ "lowercase"],
"text": "ABC4def pqr6LMN Postgres9"
}
答案 1 :(得分:0)
标准分析器使用特殊字符创建令牌,因此您可以使用关键字分析器和小写过滤器。只转换为小写而不是额外的:
df$Distance <- c(NA, distHaversine(head(p, -1), tail(p, -1)))