我想要一个弹性搜索查询来从数据库中搜索单词的排列。 例如:- 如果我输入“ABC”,那么它应该搜索[“ABC”、“ACB”、“BAC”、“BCA”、“CAB”、“CBA”]所有单词组合。

#1楼 票数:0

应该帮助您的是条款集查询https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-set-query.html

实际的实现将太复杂,无法将其作为答案放在这里,而且对于您的设置也太具体了。 但是,如果您以上述链接描述的方式索引您的文档,以便“A”、“B”和“C”是数组的标记,您将能够通过这些标记的所有排列进行搜索

另一种选择是使用 match_phrase 查询https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html

如果“ABC”是指实际单词,并且它们可以作为单独的关键字进行索引,那么这将起作用。 那么匹配的越多,文档获得的分数就越高。 而且词序并不重要,所以这意味着如果您搜索“ABC”,您将匹配包含“ABC”、“BAC”、“CBA”等的文档。通过添加slop参数,您将能够找到部分匹配的文档,例如包含“AC”的那个。

  ask by satish sehgal translate from so

未解决问题?本站智能推荐:

1回复

创建弹性搜索查询

我的elasticsearch中有这个json文档: 并且我想创建一个弹性查询,该查询可以通过以下方式帮助我找到人: 并具有专门创建与查询的麻烦IM personAddress和additionalAddresses ...谁能给我某种方向的在这里..? 谢谢! 目前我的查询看起来
1回复

弹性搜索查询语法

我正在尝试根据以下查询检索文档: 不会返回任何结果。 我的语法可能有问题。 如果有人可以提供帮助,我将不胜感激。 这是文档的结构:
1回复

弹性搜索查询不同的嵌套值

我正在为Elastic Search 6.2.2使用高级REST客户端。 假设我在索引“ DOCUMENTS”中有两个类型为“ DOCUMENTS”的文档,分别是 我想找出所有独特的有趣事实及其独特的价值,最终返回最终结果 对于Elastic Search要求不止一个查询是可以的,但是
1回复

弹性搜索:将多个查询合二为一

在我的应用程序中,我们有一个搜索栏,用户可以在其中输入名字、姓氏、ID 或电子邮件地址。 我正在查询具有以下字段的用户数据,名字、姓氏、ID、电子邮件为了查询名字、姓氏和 ID ,我是这样查询的- 为了查询电子邮件地址,我想要一个完全匹配,我是这样查询的 - 我这里有两个问题—— 如何将上述两个查
1回复

弹性搜索模糊查询意外结果

我有 2 个索引,城市和地点。 Places one 有这样的映射: 而 City is index 是这样映射的: 最初我们有一个单个文档,其中城市嵌入了地点,但我在搜索嵌套地点数组时遇到了麻烦,所以我将结构更改为这个,我希望能够在一个模糊的查询中同时搜索 cityName 和 placeNam
1回复

弹性搜索:一个查询中的多词搜索

ElasticSearch 的新手。 我在index下有文档:带有映射的弹性搜索中的myindex : http://host:port/myindex/_mapping 假设我的 3 个文件如下所示: 现在,我正在查询用于单个子产品p1.1和产品p1如下,它工作正常: POST: http:/
1回复

多个字段的弹性搜索布尔查询

我有如下索引映射: 要求 我想同时制作 bool 和 geoquery 以获取同一国家内和我附近的文档isOpen我已经尝试了以下但总是我得到一个空的 hits 对象。 响应 即使我确定有很多文档与查询匹配,但我无法得到它。 任何人都可以帮忙吗?
1回复

在弹性搜索中传递多个组合查询

我想像上面那样传递多重组合查询,应该是正确的查询格式 在SQL我的查询将是 从产品中选择*,其中(类别='type1'和产品=产品-A)或(类别='type2'和产品=产品-B)或(类别='type3'和产品=产品-C) 我想复制上面的查询