当我将这样的数据存储到Elasticsearch(v 2.3,在AWS中)时,我遇到了问题:
{
data: {
url: 'https://www.mydomain.tld',
someOtherField: 'value',
}
}
索引映射:
{
"mappings": {
"nodes": {
"properties": {
"data": {
"properties": {
"url": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}
我无论如何都找不到,我怎样才能搜索如下的查询:
http:
,https:
,http://
,https://
等等......
长话短说我需要使用协议搜索网址 - 确切的部分匹配。 因为至少冒号是一个特殊标记,搜索不会返回相关结果,即使字段未被分析。
有人可以帮助我吗?
答案 0 :(得分:2)
对我来说,目前最好的通配符是这样的。 即使我知道它是缓慢的解决方案,它也是唯一合适的:
{
query: {
"wildcard" : { "data.url" : "https://foo*" }
}
}
前提是要对领域进行分析。