【发布时间】:2016-11-25 14:01:17
【问题描述】:
当我将这样的数据存储到 Elasticsearch(AWS 中的 v 2.3)时遇到问题:
{
data: {
url: 'https://www.mydomain.tld',
someOtherField: 'value',
}
}
索引映射:
{
"mappings": {
"nodes": {
"properties": {
"data": {
"properties": {
"url": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}
我还是没有找到,如何搜索如下查询:
http:、https:、http://、https://,等等……
长话短说,我需要使用协议搜索 URL - 完全匹配。 因为至少冒号是特殊标记,所以搜索不返回相关结果,甚至不分析字段。
有人可以帮帮我吗?
【问题讨论】:
-
您的映射不正确,您在
data对象中缺少properties。因此,您可能需要在尝试查询之前解决此问题。 -
对不起,我已经从更大的 JSON 中提取了这部分映射,但我忘记了。我在那里找到了
properties,当我调用GET index/_mapping时,ES 将它返回给我。固定。 -
好的,确定一下。
-
使用 ngram 分割 URL,并在查询时使用
terms过滤器进行搜索。 -
拜托,你能给我一个简单的例子安德烈吗?搜索词看起来如何与 ngrams 一起使用?如何使用 ngrams?
标签: url search elasticsearch