【发布时间】:2018-08-25 14:17:34
【问题描述】:
我遇到了搜索一些非字母数字字符的问题。
我尝试了许多分析器,但认为“空白”分析器非常适合我的问题。
我创建了一个索引 custom_doc 并发布了一个文档 { "body": "一些带有###井号#的文本", }
但我无法通过在查询字符串中传递哈希来找到此文档
{
"query": {
"bool": {
"must": [
{
"query_string": {
"fields": [
"body"
],
"query": "#",
"analyzer": "whitespace"
}
}
]
}
}
}
然而分析表明它被正确标记了
请求
{
"analyzer": "whitespace",
"text": "#"
}
结果
{
"tokens": [
{
"token": "#",
"start_offset": 0,
"end_offset": 1,
"type": "word",
"position": 0
}
]
}
没有自定义分析器,没有映射,没有额外的过滤器。 我该如何解决这个问题?我检查了许多类似的问题,但没有任何改善。有些人建议将该字段设置为“not_analyzed”,但我仍然希望有可能在查询字符串中使用通配符,因此将字段类型从“文本”更改为“关键字”也不适合我。例如。希望此查询“so*”返回已发布的文档。
【问题讨论】:
标签: elasticsearch