python 如何在opensearch中进行类别级模糊匹配

hlswsv35  于 2022-12-21  发布在  Python
关注(0)|答案(1)|浏览(178)

我在opnesearch中有一个名为cat_master_list的索引(表)。
| 代码|范畴|姓名|
| - ------|- ------|- ------|
| 1个|专业|阿库|
| 第二章|专业|穿孔|
| 三个|专业|过敏|
| 四个|专业|变态React学家|
| 五个|程序|儿科|
| 六个|程序|外科手术|
| 七|程序|免疫学|
| 八个|程序|Maven|
现在我知道了如何在特定列上执行模糊匹配搜索,并为此共享了示例查询

query = {
      'size': 3,
      'query': {
        'multi_match': {
          'query': 'Accu',
          'fields': ['name' ,'category'],
           "fuzziness":"AUTO"
        }
      }
    }

上面的查询将对两列的所有行进行模糊匹配。现在我想写一个查询,可以对特定行进行模糊匹配。基本上,我想运行上面的查询,其中category ='Specialty'。我知道我可以创建一个单独的索引,但我想对同一个表进行类别级搜索。这在opensearch中可能吗?

yquaqz18

yquaqz181#

如果我正确理解了您要查找的内容,请尝试使用Boolean query
例如:

{
  "size": 3 ,
  "query": {
    "bool": {
      "must": {
        "multi_match": {
          "query": "Accu",
          "fields": [
            "name",
            "category"
          ],
          "fuzziness": "AUTO"
        }
      },
      "filter": {
        "term": {
          "category": "Specialty"
        }
      }
    }
  }
}

有关filtermust之间的区别,请参阅文档并根据您的情况调整查询。

相关问题