如何在通配符搜索中使用模糊查询?

时间:2019-11-17 13:15:57

标签: elasticsearch

我已经测试过:

fuzzy query
query_string

并被this one之类的“模糊通配符”搜索,仍然找不到答案。


我的问题是:输入一行字符串,如何从数据库中找到最匹配的记录?


必须满足的要求:

  1. 良好的表现;
  2. 1亿行数据(_docs);
  3. 每行数据(_doc)最多100个字符(字节);
  4. 按匹配度从大到小排序;

于2019-11-20更新比较规则:

a b c d e 1 2 3 4 5  <-- index doc

a b c d e 1 2 3 4 5  <-- search
1 1 1 1 1 1 1 1 1 1  <--- match,the same

a b c d e 1 2 3 4 5 g  <-- search
1 1 1 1 1 1 1 1 1 1 0 <--- mismatch of the any longer

a b c <-- search
1 1 1 <--  match, left substring

  b c d e 1 <-- search
  1 1 1 1 1 <-- match, any position substring

        e 1 2 3 4 5 <-- search
        1 1 1 1 1 1 <-- match, right substring

        e 1 0 3 4  <-- search input
        1 1 0 1 1  <-- match, fuzzy <20%

        e 1 2 a 4  <-- search input
        1 1 1 0 1  <-- match, fuzzy <=20%

        e 1 b a 4  <-- search input
        1 1 0 0 1  <-- mismatch, fuzzy >20%

  a 0 d e 1 2 3 4  <-- search
  0 0 1 1 1 1 1 1  <--- mismatch, fuzzy >20%,
                   but important:" Align Left " or " right ", is based on matching up to decide

0 个答案:

没有答案