当前位置: 首页 > 面试题库 >

ElasticSearch:EdgeNgrams和数字

鲁浩渺
2023-03-14
问题内容

关于EdgeNgram如何对待数字的任何想法?

我正在使用ElasticSearch后端运行干草堆。我创建了EdgeNgram类型的索引字段。该字段将包含一个字符串,其中可能包含单词和数字。

当我使用部分单词对该字段进行搜索时,它会按预期运行。但是,如果输入部分数字,则不会得到想要的结果。

例:

我通过键入“ edgen”搜索索引字段“ EdgeNgram 12323”,然后将索引返回给我。如果我通过键入“
123”来搜索相同的索引,那么我什么也没得到。

有什么想法吗?


问题答案:

如果您使用edgeNGram令牌生成器,则它将“ EdgeNGram
12323”视为单个令牌,然后在其上应用edgeNGram’ing进程。例如,如果min_grams = 1 max_grams =
4,您将获得以下标记的索引:[“ E”,“ Ed”,“ Edg”,“ Edge”]。所以我想这不是您真正要寻找的-考虑改用edgeNGram令牌过滤器:

如果您使用的是edgeNGram令牌过滤器,请确保您使用的令牌生成器实际上将文本“ EdgeNGram 12323”令牌化以产生两个令牌:[“
EdgeNGram”,“ 12323”](标准或空白令牌生成器将做到这一点)。然后在其旁边应用edgeNGram过滤器。

通常,edgeNGram将采用“ 12323”并产生诸如“ 1”,“ 12”,“ 123”等的令牌。



 类似资料:
  • 本文向大家介绍在C ++中找到偶数和奇数位数的数字总和,包括了在C ++中找到偶数和奇数位数的数字总和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数N,我们必须找到奇数位和偶数位的和。因此,如果数字是153654,则odd_sum = 9,even_sum = 15。 为了解决这个问题,我们可以从最后一位提取所有数字,如果原始数字的位数是奇数,则最后一位必须是奇数位,否则将是偶数位。

  • 返回两个或两个以上数字/数字数组中元素之和。 使用 Array.reduce() 将每个值添加到累加器,并且累加器初始值为 0 。 const sum = (...arr) => [...arr].reduce((acc, val) => acc + val, 0); sum(...[1, 2, 3, 4]); // 10

  • 本文向大家介绍JavaScript中数字的质数和,包括了JavaScript中数字的质数和的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个以数字作为第一个也是唯一的参数的JavaScript函数。然后,该函数应将所有为质数的数字相加,然后将总和作为数字返回。 例如- 如果输入号码是- 那么输出应该是- 因为7 + 7 + 5 + 2 = 21 − 示例 以下是代码- 输出结果 以下是控制

  • Python3 实例 以下实例为通过用户输入两个数字,并计算两个数字之和: 实例(Python 3.0+)# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 用户输入数字 num1 = input('输入第一个数字:') num2 = input('输入第二个数字:') # 求和 sum = flo

  • 问题是要找出A和B(包括A和B)之间的数字总数等于S。 同时打印A和B(含)之间的最小数字。 输入: 由A、B、S组成的单线。 输出: 两行。 在第一行中,A和B之间的整数数,其位数之和等于S。 在第二行中,A和B之间的最小数字。 约束: 1. 1. 来源:黑客地球 我的解决方案只适用于30%的输入。对此最好的解决方案是什么? 我现在使用的算法计算最小数字的和,然后在十位数的每次更改后再次计算和。

  • 问题内容: 假设我有一个numpy数组,例如:[1,2,3,4,5,6]和另一个数组:[0,0,1,2,2,1]我想按组对第一个数组中的项求和(第二个数组)并按组号顺序获得n个组的结果(在这种情况下,结果将为[3,9,9])。我该如何在numpy中执行此操作? 问题答案: 有多种方法可以做到这一点,但这是一种方法: 您 可以对 事物 进行 矢量化处理,以便根本没有for循环,但是我建议不要这样做。