当前位置: 首页 > 知识库问答 >
问题:

寻找从完成建议筛选建议的最佳实践

包承望
2023-03-14

让我们假设我有一个酒店索引,就像ElesticSearch网站上的示例一样。除了得到与给定短语匹配的酒店之外,我还想检查用户是否被允许看到“建议”。像只为某一客户服务的旅馆之类的东西。我添加了一个用于保存组/权限的新字段,作为一个简单的字符串用于测试。我想完成的是按组过滤。

映射如下所示:

{
  "mappings": {
    "hotel" : {
      "properties" : {
        "name" : { "type" : "string" },
        "city" : { "type" : "string" },
        "group" : { "type" : "string" },
        "name_suggest" : {
          "type" : "completion",
          "payloads" : true
        }
      }
    }
  }
}'

并附上下列文件:

{
  "name" :         "Mercure Hotel Munich",
  "city" :         "Munich",
  "group "   :     "1",
  "name_suggest" : "Mercure Hotel Munich"
}'

{
  "name" :         "Monaco Hotel",
  "city" :         "Munich",
  "group"    :     "2",
  "name_suggest" : "Monaco Hotel"
}'

在https://github.com/elasticsearch/elasticsearch/pull/4044集成之前,我们应该继续使用edgeNGram解决方案吗?或者使用完成暗示语有另一种解决方案吗?

TIA

共有1个答案

崔宜修
2023-03-14

根据1.2.0版本,您可以向建议者添加上下文并获得过滤后的建议。

介绍性博客文章

完整文档

 类似资料:
  • 开发 PWA 项目过程中,为了能够开发出高性能的代码,我们需要对自己的代码进行一系列的规范约定。在本篇教程中列出一些编写高性能可维护代码的实践建议,供大家参考。 代码规范 首先参照规范写出的代码在可维护性和代码性能方面是非常有效的方法,我们在这里推荐大家参照百度前端编码规范: JavaScript 代码规范: https://github.com/ecomfe/spec/blob/master/j

  • 我想从多个领域得到建议。我找不到这样的例子,所以也许这不是最好的主意,但我对你的意见很感兴趣。 要求是: GET查询适用于文本“fyodor”和“dostoevsky”,此示例仅适用于“fyodor” 启用筛选建议 我有什么想法可以实现这些?

  • 我使用suggestbuilder获取关键字,然后扫描内容“field”,这里是由于没有结果而发生空指针异常的地方 为了得到结果,我是否遗漏了一些过滤器或输入标准?任何结果都应该确定,如自动完成或记录找到。 编辑1:

  • (1)尽可能的使用:=去初始化声明一个变量(在函数内部); (2)尽可能的使用字符代替字符串; (3)尽可能的使用切片代替数组; (4)尽可能的使用数组和切片代替映射(详见参考文献15); (5)如果只想获取切片中某项值,不需要值的索引,尽可能的使用for range去遍历切片,这比必须查询切片中的每个元素要快一些; (6)当数组元素是稀疏的(例如有很多0值或者空值nil),使用映射会降低内存消耗

  • 问题内容: 我已经在网上尝试了一些有关ElasticSearch的提示功能的示例代码,但是无法针对自动完成解决方案解决我的问题 我的索引: 我使用了suggestbuilder来获取关键字,然后扫描内容“字段”,这是由于没有结果而导致空指针异常的地方 我是否缺少一些过滤器或输入条件以获取结果?任何结果都应该可以,例如自动完成或找到记录。 编辑1: 这是我得到NPE的地方,我可以看到 调试模式下没有