如何在Elastic Search 5.6中对分析字段进行字母排序?

2024-04-11

我在弹性搜索中面临字母排序问题。

我有一个 Index: indexlive 和一个具有以下映射的“users”类型:

{
  "liveindex": {
    "mappings": {
      "users": {
        "properties": {
          "user_Confirmed": {
            "type": "boolean"
          },
          "user_DateOfBirth": {
            "type": "text"
          },
          "user_Email": {
            "type": "text",
            "analyzer": "standard"
          },
          "user_Gender": {
            "type": "text"
          },
          "user_Name": {
            "type": "text",
            "analyzer": "standard"
          },
          "user_Photo": {
            "type": "text"
          },
          "user_UserID": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

我的查询是这样的:

{
  "index": "liveindex",
  "type": "users",
  "body": {
    "from": 0,
    "size": 50,
    "query": {
      "query_string": {
        "fields": [
          "user_Name"
        ],
        "default_operator": "AND",
        "query": "neel"
      }
    },
    "sort": {
      "_score": {
        "order": "desc"
      }
    }
  }
}

当我运行上述查询时,我得到以下结果:

尼尔乔杜里

ITZ NEEL

尼尔·莫迪

尼尔·亚格尼克

anu neel

斯瓦纳尼尔

我希望查询首先返回那些以“Neel”或“neel”作为第一个单词的名称。但正如您所看到的 ITZ NEEL,anu neel 的顺序不符合要求。我也应用了按 user_Name 排序,但没有成功。 我知道弹性搜索使用字典顺序而不是字母顺序。

有人可以帮我吗?


这不是字典顺序与字母顺序的问题。你应该创建一个keyword您的子字段user_Name字段,以便您稍后可以使用neel prefix:

PUT liveindex
{
  "settings": {                            <-- add these settings
    "analysis": {
      "normalizer": {
        "lowercase": {
          "type": "custom",
          "filter": ["lowercase"]
        }
      }
    }
  },
  "mappings": {
    "users": {
      "properties": {
        "user_Confirmed": {
          "type": "boolean"
        },
        "user_DateOfBirth": {
          "type": "text"
        },
        "user_Email": {
          "type": "text",
          "analyzer": "standard"
        },
        "user_Gender": {
          "type": "text"
        },
        "user_Name": {
          "type": "text",
          "analyzer": "standard",
          "fields": {                     <-- add this sub-field
            "sort": {
              "type": "keyword",
              "normalizer": "lowercase"
            }
          }
        },
        "user_Photo": {
          "type": "text"
        },
        "user_UserID": {
          "type": "keyword"
        }
      }
    }
  }
}

然后,为数据建立索引,最后使用以下查询,这将对具有user_Name开头为的字段neel:

POST liveindex/_search
{
  "from": 0,
  "size": 50,
  "query": {
    "bool": {
      "must": {
        "query_string": {
          "fields": [
            "user_Name"
          ],
          "default_operator": "AND",
          "query": "neel"
        }
      },
      "should": {
        "prefix": {
          "user_Name.sort": "neel"
        }
      }
    }
  },
  "sort": {
    "_score": {
      "order": "desc"
    }
  }
}

您将按以下顺序获得文档:

  • 尼尔·亚格尼克
  • 尼尔·莫迪
  • 尼尔乔杜里
  • ITZ NEEL
  • anu neel
  • 斯瓦纳尼尔
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Elastic Search 5.6中对分析字段进行字母排序? 的相关文章

  • 删除Elasticsearch中类型的文档

    我想使用 HTTP REST api 删除 Elasticsearch 中某一类型中索引的所有文档 但我不想删除该类型的映射 如何在 URL 中构建查询来执行此操作 执行命令前 索引 映射状态 截图取自elasticsearch头插件网络界
  • 在elasticsearch中截断索引

    等效操作是什么elasticsearch为了做 TRUNCATE mytable 我要截断的索引称为 myindex 换句话说 在操作之后 我希望索引 myindex 中有零个文档 您需要删除索引 然后重新创建它 虽然这需要您再次设置映射
  • Logstash 错误 Java::JavaLang::NoClassDefFoundError 无法解决

    我是elasticsearch ES 和logstash 的新手 我已经使用它成功设置了elasticsearch和kibanalink https www youtube com watch v hVgrXi 9L6Y 之后我尝试使用lo
  • 使用elasticsearch按一天中的时间累积流量

    我正在接收来自大量客户端应用程序的请求 事件 我想使用elasticsearch 来找出我的最高流量点是什么时候 我尝试过的一件事是使用嵌套直方图进行过滤器聚合 然后使用嵌套的 术语 聚合 通过脚本字段获取一天中的不同时间 以下是我的尝试
  • Elasticsearch批量设置_id

    当我使用 id 设置将文档添加到 elasticsearch 时 我得到 Field id is a metadata field and cannot be added inside a document Use the index AP
  • 在ElasticSearch中搜索没有时间的日期字段值

    我的数据中有一个日期字段为 type date format dateOptionalTime 现在我的日期字段和值是 INITIAL EXTRACT DATE 2015 04 02T06 47 57 78 05 30 在搜索时 我仅根据
  • 如何在弹性搜索(aws)中存储日期范围数据并搜索范围?

    我正在尝试在弹性搜索中存储酒店房间可用性 然后我需要 搜索从某个日期到另一个日期可用的房间 我想出了 存储数据以确保可用性的两种方式 如下 这里可用性字典存储了所有日期 每个日期键的值是 true 或 false 代表其可用 那天与否 id
  • 分面搜索的后过滤器和全局聚合之间有什么区别?

    搜索界面中的一个常见问题是您想要返回结果的选择 但可能想返回有关所有文档的信息 例如 我想查看所有红色衬衫 但想知道什么 其他颜色可供选择 这有时被称为 多面结果 或者 多面导航 这Elasticsearch 参考中的示例 https ww
  • 在elasticsearch中过滤facet

    我有一个如下查询 query query query string query s q filter ids values list ids facets destination terms field destination en hot
  • 如何使用elasticsearch进行分页?来自 vs 滚动 API

    我使用elasticsearch作为数据库来存储大量日志数据 我知道有两种方法可以进行分页 使用大小并来自 API 使用滚动API 现在我使用 from 进行分页 从前端和后端获取页面和大小参数 Java searchSourceBuild
  • ElasticSearch JavaAPI (SearchScroll)- search_context_missing_exception","re​​ason":"找不到 id 的搜索上下文

    我正在获取超过100k使用一个索引中的文档searchScroll并在所有字段中再添加一个字段100K文件 然后再次将这些文档插入到另一个新索引中 我正在使用SearchScrollapi 也在设置大小searchSourceBuilder
  • 局部敏感哈希 - Elasticsearch

    有没有允许在 Elasticsearch 上使用 LSH 的插件 如果是的话 您能否指出该位置并告诉我如何使用它 谢谢 编辑 我发现ES使用了MinHash插件 我怎样才能用这个来比较文件呢 查找重复项的最佳设置是什么 有一个Elastic
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • C# Elasticsearch NEST 无法转换 lambda 表达式

    我遇到了与此处描述的完全相同的问题 但未得到解答 ElasticSearch NEST 搜索 https stackoverflow com questions 24615676 elasticsearch nest search I us
  • Elasticsearch 单个字段的多个分析器

    我使用严格的预定义映射将不同类型的文档存储在单个索引中 它们都有一些字段 例如 body 但我希望在索引时对它们进行稍微不同的分析 例如 对特定文档使用不同的标记过滤器 并在搜索时以相同的方式处理 据我所知 分析器不能按文档指定 我还考虑使
  • 在流浪机器中使用elasticsearch设置graylog2服务器

    我正在尝试在本地开发计算机上安装graylog2 服务器 但遇到了elasticsearch 设置问题 我的elasticsearch作为服务安装在我的开发机器上运行的vagrant机器上 所以我的elasticsearch没有安装在127
  • 我们可以同时使用拼音标记和同义词吗?

    我正在尝试同时启用语音分析器和同义词 这似乎不起作用 它们一起使用有错吗 在下面的实现中 我希望使用同义词转换搜索查询 然后使用语音分析器来检索结果 但我的同义词在这里完全被忽略了 如果我在创建索引时删除语音分析器 那么同义词就可以正常工作
  • 弹性搜索文档计数

    我正在运行 2 2 版本的 Elastic 搜索 我已经创建了索引并加载了示例文档 我发现其中有些问题 当我给予 GET index type count 我得到了正确的答案 count 9998 shards total 5 succes
  • 在 Elasticsearch 中删除文件后回收磁盘空间

    当我从 Elasticsearch 中删除文档时 为什么我的 总大小 保持不变 尽管由于没有以前存储的数据而明显小得多 我读过有关索引优化的内容 但我不确定这是什么或如何做到这一点 Thanks 我确信 SO 和 Google 上都有大量与
  • Elasticsearch - 使用“标签”索引来发现给定字符串中的所有标签

    我有一个 elasticsearch v2 x 集群 其 标签 索引包含大约 5000 个标签 tagName tagID 给定一个字符串 是否可以查询标签索引以获取在该字符串中找到的所有标签 我不仅想要精确匹配 而且还希望能够控制模糊匹配

随机推荐

  • Xcode:多人共享相同的 Bundle ID

    我正在和朋友一起开发 iOS 应用程序 我们都以个人身份报名参加了 Apple 开发计划 我们没有组织 我们正在使用 git 并且希望能够从 Mac 构建应用程序 但我无法编译 因为 Bundle ID 已被我的朋友使用 是否有可能在不成为
  • 将数据库文件从文件资源管理器中的 /assets 复制到 /data/data 文件夹 - Android

    我在文件资源管理器中将数据库文件从 assets 复制到 data data 文件夹时遇到问题 我搜索了这个网站 找到了很多答案 但找不到适合我的情况的适当答案 我已经使用 SQLite Manager 在外部创建了数据库并将其导入到资产文
  • 在 R 中的 DT::datatable 中包含表容器

    我是 HTML 和交互式表格的新手 并且在构建表格容器来为我的数据集添加标题时遇到了麻烦 有没有一种简单的方法可以为我的数据集插入表头 我希望第 2 5 列 不包括第 1 列中的日期 和第 6 9 列分别具有标题 部门 和 行业 我在下面包
  • 如何使用 scala 2.12 重建 apache Livy

    我正在使用 Spark 3 1 1 它使用 Scala 2 12 以及从下载的预构建 Livyhere https livy incubator apache org download 使用 Scala 2 11 可以找到名为repl 2
  • 即使速度非常低,物体也会立即移动到新位置

    我想将一个对象缓慢地从其原始位置移动到稍高的位置 但此代码会立即将对象移动到最高位置 即使我使用非常慢的速度 如 0 0001f 我在另一个代码中仅调用 LiftObj 1 次 并告诉它运行直到达到 liftOffset 这段代码有什么问题
  • Java 指令重新排序示例不起作用

    我需要一些帮助 我正在尝试创建一个示例 表明需要 volatility 来防止指令重新排序 在这个例子中 我试图证明 b gt a 仅当发生重新排序时才发生 并且 volatile 会阻止它 问题是 每次运行我都会得到 b gt a 而且我
  • React-pdf 图像不渲染

    我一直在尝试将图像添加到react pdf PDF文档中 但是 无论我做什么 图像都不会显示在 PDF 中 除了一些非常具体的图像 由于某种原因 我发现其他人也有同样的问题 但没有解决方案或解决方法 任何帮助将不胜感激 这是我使用的代码 使
  • 为什么 YouTube api 搜索从不同的服务器返回不同的结果?

    我们注意到从返回的搜索结果v3 搜索 API https developers google com youtube v3 docs search list根据服务器位置的不同而有所不同 我已经确认代码是完全相同的 当我使用 api 文档网
  • PHP excel - 数据循环?

    我有一个数据数组的数组 所以基本格式是 sheet array array a1 data b1 data c1 data d1 data array a2 data b2 data c2 data d2 data array a3 dat
  • prometheus/client_python:如何在不重新启动的情况下分配新注册表?

    我编写了一个小脚本来检测 Flask 应用程序 我想编写单元测试 其中每个测试都可以针对模拟 Flask 应用程序编写请求并测试指标 而无需处理来自以前测试方法的指标 请求 如下所示 def test grouped codes app c
  • 将 hdf5 库(java 和 c++)添加到公共 Maven 存储库?

    是否有一个公共 Maven 存储库 我或其他人可以在其中放置 HDF java 和 HDF C 库 我没有 Maven 存储库 并且我不想自己为这些 3rd 方库设置一个存储库 肯定有更多人使用 HDF 库并希望将它们用作 Maven 项目
  • 类型“()”不能符合“View”;只有 struct/enum/class 类型可以符合协议

    我目前正在学习 swift 我试图制作一个简单的应用程序来显示您是否已连接到互联网 但我不断收到以下错误 类型 不能符合 View 只有 struct enum class 类型可以符合协议 这是代码 struct ContentView
  • 在 UIScrollView 中滚动时动画停止

    因此 我试图制作一款游戏 用户必须尽可能快地向下滚动 才能逃脱无限增大的 块 这是我的问题 我使用 UI ScrollView 作为滚动机制 并以普通 UI 视图作为子视图 我设置了每 0 005 秒触发一次 这会增加 块 的高度和滚动视图
  • numpy.where() 究竟如何选择本例中的元素?

    来自 numpydocs https www numpy org devdocs reference generated numpy where html gt gt gt np where True False True True 1 2
  • Spark DAG 的“withColumn”与“select”不同

    Context 在最近的一次SO post https stackoverflow com questions 59788837 chained spark column expressions with distinct windows
  • MatTabNavBar 不显示箭头

    我注意到 如果容器对于选项卡来说太小 MatTabNavBar 在显示箭头时的行为与常规 MatTabGroup 不同 我使用官方文档构建了MatTabNavBar和MatTabGroup 但是您可以在这里看到MatTabGroup显示了箭
  • ngtable:对嵌套对象进行排序和过滤

    我有一个对象列表要在 ngTable 的表格上显示 我的对象看起来像 obj label string nestObj nestLabel string 在我的控制器中 我想允许对字段 label 和 nestObject label 进行
  • 尝试 Azure 与 Unity 连接时出现“NotImplementedException”(c#)

    我使用的是Unity 2019 3 6f1 我创建了一个简单的 DLL 用于连接到 Azure 并上传文件 但是 当我调用此 DLL 来尝试连接到 Azure blob 存储时 我得到以下堆栈跟踪 NotImplementedExcepti
  • 在PHP中计算两种颜色之间的平均颜色,使用索引号作为参考值

    在 PHP 中 我试图计算不同十六进制颜色之间的平均颜色 以十六进制表示 但是 我还需要能够提供 0 0 到 1 0 之间的索引号 例如 I have color1 ffffff color2 0066CC 如果我编写一个函数来获取平均颜色
  • 如何在Elastic Search 5.6中对分析字段进行字母排序?

    我在弹性搜索中面临字母排序问题 我有一个 Index indexlive 和一个具有以下映射的 users 类型 liveindex mappings users properties user Confirmed type boolean