【发布时间】:2014-10-31 09:57:31
【问题描述】:
我想结合使用主题标签搜索和标准文本搜索。
这是我希望能够进行的查询:
“皮裤#vintage #london”
所以实际上我想剥离#hashtaged 元素并按名称搜索它们,这是一种累积的意义。首先,我希望它通过搜索字符串优先考虑完全匹配,然后优先考虑具有接近匹配 + 主题标签的匹配,最后如果与搜索字符串不匹配,则通过散列标签。
因此,带有 Vintage 和 London 的物品会比带有 Vintage 或 London 的物品放置得更高。
这是我的地图
{
"title" : {
"type" : "string",
"analyzer" : "standard"
},
"hashtags" : {
"properties" : {
"id" : "integer",
"name" : "string"
}
}
}
所以我要查询的是
"exact or near match string" + "optional cumulative array match (preferably with fuzzyness)"
或与我的映射有关
"near or exact match on 'title'" + "cumulative array match with fizzyness on hashtag.name"
我尝试了模糊匹配,但返回的结果太多且不够清晰。我尝试了一个简单的 simple_query_string 但它返回了奇怪的结果,并尝试了一个布尔匹配但当我添加数组时什么也没有得到。
任何人可以提供的任何帮助都将被感激地接受。如果您需要更多信息或其他信息,请告诉我?非常感谢您抽出宝贵时间阅读本文。
【问题讨论】:
标签: arrays elasticsearch hashtag fuzzy-search