即使首字母丢失,Elasticsearch 也会提供拼写检查建议

2024-01-10

我创建一个这样的索引:

curl --location --request PUT 'http://127.0.0.1:9200/test/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "properties" : {
            "word" : { "type" : "text" }
        }
    }
}'

当我创建文档时:

curl --location --request POST 'http://127.0.0.1:9200/test/_doc/' \
--header 'Content-Type: application/json' \
--data-raw '{ "word":"organic" }'

最后,使用故意拼写错误的单词进行搜索:

curl --location --request POST 'http://127.0.0.1:9200/test/_search' \
--header 'Content-Type: application/json' \
--data-raw '{
  "suggest": {
    "001" : {
      "text" : "rganic",
      "term" : {
        "field" : "word"
      }
    }
  }
}'

“organic”一词丢失了第一个字母 - ES 从未为此类拼写错误提供建议选项(对于任何其他拼写错误 - 'orgnic'、'oragnc' 和 'organi' 绝对没问题)。我缺少什么?


发生这种情况是因为prefix_length范围:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html。默认值为 1,即术语开头至少 1 个字母必须匹配。您可以设置prefix_length为 0 但这会对性能产生影响。只有您的硬件、您的设置和数据集才能准确地向您展示这些在您的案例中的实际情况,即尝试一下:)。但是,请小心 - Elasticsearch 和 Lucene 开发人员将默认值设置为 1 是有原因的。

这是一个查询,在我执行您的设置步骤后,它会返回您在 Elasticsearch 7.4.0 上需要的建议结果。

curl --location --request POST 'http://127.0.0.1:9200/test/_search' \
--header 'Content-Type: application/json' \
--data-raw '{
  "suggest": {
    "001" : {
      "text" : "rganic",
      "term" : {
        "field" : "word",
        "prefix_length": 0
      }
    }
  }
}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使首字母丢失,Elasticsearch 也会提供拼写检查建议 的相关文章

随机推荐

  • 如何通过 Django 中的表单向整数字段添加值?

    我目前正在尝试制作一个表单 将值添加到我创建的 点 模型中 但它似乎没有通过 我制作了一个表单 允许用户输入任何整数值 并且它应该添加 或减去 到模型中 谁能指出我该做什么的正确方向 任何帮助表示赞赏 这是我的 forms py class
  • 在 WPF 中隐藏网格行

    我有一个简单的 WPF 表单 其中包含Grid在表格上声明 这Grid有一堆行
  • *ngFor中输入无法顺利打字Angular 2

    下面的链接是示例代码 https plnkr co edit xmWMm0yjFemdXQzZpJad p preview https plnkr co edit xmWMm0yjFemdXQzZpJad p preview 我有一个对象
  • Keras 检查时出错:预期 embedding_1_input 具有形状 (None, 100),但得到的数组具有形状 (1, 3)

    我使用 imdb 示例创建了 LSTM 模型 并尝试在我自己的字符串中预测情绪 max features 20000 cut texts after this number of words among top max features m
  • 如何阻止 PHP iMagick 根据 EXIF“方向”数据自动旋转图像

    目前正在使用 PHP 和 iMagick 开发海报打印 Web 应用程序 这是我用来测试应用程序的上传 图像编辑功能的示例图像 该图像包含以下 EXIF 数据 FileName gt 1290599108 IMG 6783 JPG File
  • RedirectToAction 位于区域之外

    我最近在工作中更新了我们的 MVC 2 项目以使用 Areas 但是我遇到了一些问题RedirectToAction method 我们的一些管制员等仍然位于我们的区域之外 这些控制器包括家庭控制器等 我该如何做RedirectToActi
  • Python 静态方法并不总是可调用的

    在解析属性时使用 dict https docs python org 3 library stdtypes html object dict my staticmethod https docs python org 3 library
  • 使用 rsync(或 svn、git、cvs)进行部署并忽略部署期间不一致的状态?

    我们目前正在讨论通过 rsync 部署网站 但是 在 rsync 过程中 应用程序处于不一致的状态 因为某些文件可能已经同步 而其他文件仍保留旧版本 对吗 人们如何处理这个问题 我猜想通过 svn git cvs 部署时也存在同样的问题 我
  • MongoDB 中的查询

    我正在尝试使用rmongodb从 MongoDB 数据库获取信息以便在 R 中进一步处理 但是 我在真正开始时遇到了一些困难 这个有效 cursor lt mongo find mongo people query list last na
  • iOS 上的 Xamarin Forms 如何设置页面的屏幕方向?

    所以标题说明了一切 我现在对 iOS 很关心 我试图起诉我的基本页面 LandscapeContentPage 的自定义渲染器 这希望强制它呈现为横向 我没有成功 我尝试使用我发现的一个 hack 在 ViewDidAppear 中你提供了
  • 回形针 - 每个样式的默认样式?可能的

    我正在使用回形针 并且有多种样式 styles gt large gt 300x300 gt medium gt 150x150 gt small gt 50x50 gt thumb gt 30x30 gt 问题是default stype
  • Linux下自动调整进程优先级

    我正在尝试编写一个程序 根据配置文件 基本上是路径 优先级对 自动设置进程优先级 我认为最好的解决方案是用一个内核模块来替换 execve 系统调用 太糟糕了 系统调用表在内核版本 gt 2 6 0 中没有导出 因此如果没有系统调用表 就不
  • Crashlytics 记录错误

    我正在使用 iOS 版 Crashlytics 记录错误 NSDictionary detail message errorWithURL response jsonString Crashlytics sharedInstance rec
  • 如何通过代理/防火墙添加网络引用?

    我目前在工作中处于防火墙后面 我正在测试已部署到 我的网站的某些内容 并且工作代理似乎在某种程度上阻止了它 基本上我收到的消息是 由于对象的当前状态 操作无效 我已将其归结为我的代理干扰 但我看不到任何高级设置或任何可以设置为通过我的代理访
  • Python:解析 JSON 时出现 Keyerror

    我刚刚编写了一个程序来解析 api 中的一些数据 API 以 JSON 格式返回数据 当我尝试解析它时 它给了我一个关键错误 Traceback most recent call last File test py line 20 in
  • 避免 Python 中不必要的切片复制

    对于这样的情况 是否有一个常见的习惯用法可以避免无意义的切片复制 gt gt gt a bytearray b hello gt gt gt b bytearray b goodbye cruel world gt gt gt a exte
  • sql-左连接-计数

    假设我有两张桌子 文章和评论 当我从文章表中选择列时 我还想在同一个选择语句中选择文章的评论数 假设这两个表之间的公共字段是articleid 我怎么做 我可以完成它 但我不知道我的方法是否有效 所以我想学习正确的方法 这应该更有效 因为分
  • 如何在android中显示所有共享选项?

    我正在开发一个 Android 应用程序 想通过打开所有设备中可用的共享选项 但目前该列表显示电子邮件 蓝牙 Gmail 和消息传递 BBC 新闻等其他应用程序在同一设备中显示了更多选项 如 Bump Picasa 等 如何显示所有可用选项
  • 在java中读取JSON对象[重复]

    这个问题在这里已经有答案了 我们如何在 JSP Servlet 或任何其他 Java 程序中读取 JSON 对象 我建议使用Gson http code google com p google gson 为了这 它的优点是对泛型的支持非常好
  • 即使首字母丢失,Elasticsearch 也会提供拼写检查建议

    我创建一个这样的索引 curl location request PUT http 127 0 0 1 9200 test header Content Type application json data raw settings num