Elasticsearch - 模糊、短语、完成建议和破折号

2023-12-31

因此,我一直在问单独的问题,试图实现我想要实现的搜索功能,但仍然达不到要求,所以我想我只会问人们他们对最佳 Elasticsearch 设置、映射、索引和查询结构的建议,以完成我正在寻找的工作为了。

当您键入查询类别的解决方案时,我需要进行搜索。如果我输入“mex”,我希望得到“墨西哥餐厅”、“墨西哥杂货店”、“德克萨斯墨西哥餐厅”和“医疗用品”等结果。 “医疗用品”会回来,因为模糊可能会认为你想输入“med”。不过,其中包含“墨西哥”的类别应该首先列出。关于优先级主题,如果用户输入“bar”,我希望“Bar”出现在列表中的“Barn”或“Barbecue”之前。

除此之外,我还在寻找用户搜索“墨西哥商店”的能力,并且仍然会返回“墨西哥杂货店”。此外,如果用户输入“墨西哥商店”,仍会返回“墨西哥杂货店”。

除了上述功能之外,我还需要一种处理破折号的方法。如果用户输入“tex mex”、“tex-mex”、“texmex”的任何变体,我希望得到“Tex-Mex Restaurant”。

如果您已经读到这里,我真的很感激。我已经实施了一些解决方案,但没有一个能够满足我上面描述的所有需求。

我当前的配置:

settings

curl -XPUT http://localhost:9200/objects -d '{
    "settings": {
        "analysis": {
            "analyzer": {
                "lower": {
                    "type": "custom",
                    "tokenizer": "keyword",
                    "filter": [ "lowercase" ]
                }
            }
        }
    }
}'

mapping

curl -XPUT http://localhost:9200/objects/object/_mapping -d '{
    "object" : {
        "properties" : {
            "objectDescription" : {
                "type" : "string",
                "fields" : {
                    "lower": {
                        "type": "string",
                        "analyzer": "lower"
                    }
                }
            },
            "suggest" : {
                "type" : "completion",
                "analyzer" : "simple",
                "search_analyzer" : "simple",
                "payloads" : true
            }
        }
    }
}'

index

{
    "id":6663521500659712,
    "objectDescription":"Mexican Grocery Store",
    "suggest":{
        "input":["Mexican Grocery Store"],
        "output":"Mexican Grocery Store",
        "payload":{
            "id":6663521500659712
        }
    }
}

query

{
    "query":{
        "bool":{
            "should":[
                {
                    "fuzzy":{
                        "objectDescription.lower":{"value":"med"}
                    }
                },
                {
                    "term":{
                        "objectDescription":{"value":"med"}
                    }
                }
            ]
        }
    },
    "from":0,
    "size":20,
    "suggest":{
        "object-suggest":{
            "text":"med",
            "completion":{
                "field":"suggest",
                "fuzzy":{
                    "fuzzy":true
                }
            }
        }
    }
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch - 模糊、短语、完成建议和破折号 的相关文章

随机推荐

  • 使用 FILTERXML 将字符串解析为表

    这与此有关question https stackoverflow com questions 69045317 how to calculate backplane throughput given an arbitrary list o
  • 数组的 setter 和 getter

    我是 Java 新手 我需要一些澄清如何解决问题 我有课Epicycle 定义如下 public class Ts epicycle private double epoch private double tle new double 10
  • xmpphp XMPP,从 php 脚本发送消息

    你好 我有一个 jabberserver 我希望能够从 php 脚本向用户推送消息 F x 如果我从浏览器调用 script php 它会向用户发送一条消息 我已经尝试过 jaxl 和 xmpphp 这两个 xmp 框架 但我无法让它工作
  • Angular2 beta:嵌套基于表单的父/子组件并从父级进行验证

    我正在尝试在 Angular2 Plunker 中带有 TS 的 beta 0 中实现一个具有 2 个嵌套表单的场景 每个表单由一个组件表示 父组件是Word 它代表假字典中的单词 子组件是WordSense s 每个都代表父词的一种含义
  • 使用 SmtpClient 时“操作超时”

    我正在尝试使用 C 框架创建一个小应用程序来发送电子邮件 然而 它不起作用 该应用程序总是给我 操作超时 我不知道为什么 这是我的代码 private void button1 Click object sender EventArgs e
  • 在 PostGIS 中,大于半个世界的多边形被视为相反的多边形

    我将 GeoDjango 与 PostGIS 结合使用 并尝试使用多边形从数据库中获取属于其中的记录 如果我定义一个大于地球面积一半的多边形 则假定多边形的 内部 是我打算作为 外部 的较小区域 并且仅返回其外部的结果 我可以使用这个较小的
  • 使用 CSS Flex 使行中的元素等高

    我试图使用黄色背景的元素与该行中的其他元素具有相同的高度flex 但无法通过这种设计弄清楚 这li元素只是不想处于全高 运行代码片段看看我在说什么 谢谢你 html body height 100 margin 0 padding 0 ma
  • 如何超越这个正则表达式替代品?

    经过大量测量后 我在我们的一项 Windows 服务中发现了一个我想要优化的热点 我们正在处理可能包含多个连续空格的字符串 并且我们希望减少到仅单个空格 我们使用静态编译的正则表达式来完成此任务 private static readonl
  • DDD:更新实体多个属性的指南

    所以 我决定学习 DDD 因为它似乎可以解决我一直面临的一些架构问题 虽然有很多视频和示例博客 但我还没有遇到可以指导我解决以下场景的视频和示例博客 假设我有实体 public class EventOrganizer IEntity pu
  • C#-在“封闭”局部作用域中使用变量?

    我正在尝试向 C 应用程序添加一些新功能 特别是尝试复制其某些行为 但在 Web 浏览器中 而不是像当前那样在应用程序中复制 我正在尝试调用已在中定义的方法Browser cs从方法内部的类MainWindow cs class 该方法定义
  • ImportError:没有名为 sklearn.preprocessing 的模块

    我按照这些在 Ubuntu 上成功安装了 scikit learn指示 http scikit learn org 0 13 install html install official release 但是 当我运行使用它的程序时 出现此错
  • Axis2:将非必需属性添加到 WSDL 时避免出现“意外子元素”错误

    我有一个 NET WCF 服务和一个使用 Axis2 生成服务存根的 Java 应用程序 当我添加一个optionalWCF 中数据合约的属性以及将其排序在属性列表的末尾 这应该是向后兼容的更改 它会导致意外的子元素Java 应用程序中的错
  • 创建 GraphQLHttpClient 时出现 GraphQLClient 错误:IGraphQLWebsocketJsonSerializer

    使用 GraphQL 版本 2 1 0 我无法创建对象 GraphQLHttpClient 我立即收到以下错误 System AggregateException HResult 0x80131500 Message One or more
  • Epplus插入图表ColumnStacked3D切换行/列

    我正在使用 epplus 在我的程序中创建 Excel 我需要插入柱形图 这是我的代码 Add the chart to the sheet var chart sheet Drawings AddChart chartTitle eCha
  • 如何将networkX图导入neo4j?

    我有一个创建的图表networkX我正在使用 neonx 将其导入neo4j在本地主机上 我有一个networkX类型图称为G 下面是代码 data1 json graph node link data G H json graph nod
  • 由 tycho maven 将 JRE 与基于 RCP 插件的应用程序捆绑在一起

    我有基于插件模型的 RCP 应用程序 我想将 JRE 放入 Maven Tycho 创建的最终工件中 我尝试遵循这些建议 在第谷构建中包含一个 jre https codeiseasy wordpress com 2012 07 31 in
  • 保存后会在“我的文档”中创建 Excel Addin 的副本

    我有一个应用程序 在 IBM Notes 中运行 使用 Lotusscript 等 它通过 OLE 自动化创建一个新的 Excel 对象 在我的应用程序中 我创建一个新的工作簿并将其保存到临时文件夹 我将其另存为不带宏的 Excel 工作表
  • HTML5 语音输入和 Google Translate 文本转语音,Chrome 中的问题

    我正在创建一个语音 文本备忘录 Web 应用程序 这里 http gustavstromberg se sandbox html5 localstorage http gustavstromberg se sandbox html5 loc
  • awk 命令在 Snakemake --use-singularity 中失败

    我正在尝试将 Snakemake 与 Singularity 结合起来 我注意到一个简单的awk使用奇点时命令不再起作用 这 1最后一行被 bash 替换 而不是被用作第一个字段awk 这是一个最小的工作示例 蛇形锉刀 singularit
  • Elasticsearch - 模糊、短语、完成建议和破折号

    因此 我一直在问单独的问题 试图实现我想要实现的搜索功能 但仍然达不到要求 所以我想我只会问人们他们对最佳 Elasticsearch 设置 映射 索引和查询结构的建议 以完成我正在寻找的工作为了 当您键入查询类别的解决方案时 我需要进行搜