我想从多个领域得到建议。我找不到这样的例子,所以也许这不是最好的主意,但我对你的意见很感兴趣。
POST /authors { "mappings": { "author": { "properties": { "name": { "type": "multi_field", "fields": { "name": { "type": "string", "index": "analyzed" }, "ac": { "type": "completion", "index_analyzer": "simple", "search_analyzer": "simple", "payloads": true } } } } } } }
POST /authors/author/1 { "name": "Fyodor Dostoevsky" }
POST /authors/_suggest { "authorsAutocomplete": { "text": "fyodor", "completion": { "field": "name.ac" } } }
要求是:
我有什么想法可以实现这些?
首先,暗示者在多个领域都不能很好地工作,所以你可以把它放在外面。其次,为了使查询同时使用name和firstname,在索引数据时必须选择输出/输入。
Sense的工作代码示例:
POST authors
PUT authors/_mapping/author
{
"properties" : {
"name" : { "type" : "string" },
"suggest" : { "type" : "completion"}
}
}
POST authors/author/1
{
"name": "Fyodor Dostoevsky",
"suggest": {
"input": ["Dostoevsky", "Fyodor"],
"output": "Fyodor Dostoevsky"
}
}
POST authors/_suggest
{
"authorsAutocomplete": {
"text": "d",
"completion": {
"field": "suggest"
}
}
}
DELETE authors
结果:
{
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"authorsAutocomplete": [
{
"text": "d",
"offset": 0,
"length": 1,
"options": [
{
"text": "Fyodor Dostoevsky",
"score": 1
}
]
}
]
}
筛选器不可用于建议。要实现某种筛选,您可以查看这篇关于在建议中使用上下文的博客文章。
问题内容: 我在Elasticsearch中使用“完成建议程序”来允许部分单词匹配查询。在我的索引(products_index)中,我希望能够同时查询 product_name 字段和 brand 字段。这是我的映射: 这是我的数据: 这是我的查询: 效果很好,除了我想给 product_name 字段赋予比 brand 字段更高的权重。有什么办法可以实现?我已经研究了有关使用 布尔 查询的文章
问题内容: 我正在对具有字符串类型数组的文档字段进行自动完成建议。我的文件如下所示; 我正在 标签 字段上执行自动完成搜索。我的查询就像; 当用户键入“ word”时,我要显示“ wordland”和“ wordpress”。但是,我无法做到这一点。 您能帮上忙吗? 谢谢 问题答案: 您是否尝试过完成建议?解决问题的一种方法如下: 1)创建索引: 2)使用完成建议者类型创建映射: 3)添加文件:
问题内容: 我想使用Nest将完成建议字段填充到索引中。阅读了有关实现补全字段的ElasticSearch博客文章后,我看到您可以具有以下属性: 输入数组 单输出 重量 有效载荷 我假设要将这些数据加载到索引中,我需要在包含上述字段的搜索对象上包括一个实体吗? 问题答案: 我终于可以通过创建几个类并遵循FluentMappingFullExample单元测试(特别是以下部分)来加载完成字段: 对于
我配置了一个带有两个字段的Elasticsearch索引:“name”和“type”。当我执行下面的查询时,没有得到任何结果,因为“actor”在“type”字段中。 有没有任何方法可以执行一个包含多个单词的查询,并且即使一些单词在“name”字段中而其他单词在“type”字段中也可以得到结果。 谢谢你的帮助!
问题内容: 使用Elasticsearch完成建议程序时,我在返回与一词查询匹配的多词输入建议时遇到问题。 示例结构: 工作查询: 结果 查询失败: 结果 我希望得到与工作查询相同的结果,匹配“猫狗”。有什么建议是什么问题,以及如何使失败的查询正常工作?当使用标准分析器而不是空白分析器时,我得到相同的结果。我想每个输入字符串使用多个单词,如上面的示例所示。 问题答案: 完成建议器是前缀建议器,这意
问题内容: 我在ES 5.1中为数据建立索引时遇到的第一个错误是完成建议映射,其中包含一个输出字段。 所以我删除了它,但是现在我的许多自动补全都不正确,因为它返回匹配的输入而不是单个输出String。 经过一番谷歌搜索后,我发现ES中的这篇文章提到了以下内容: 由于建议是面向文档的,因此建议元数据(例如输出)现在应指定为文档中的字段。删除了对建立索引建议条目时指定输出的支持。现在,建议结果条目的文