首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从节点js中的弹性搜索中提取数据?

如何从节点js中的弹性搜索中提取数据?
EN

Stack Overflow用户
提问于 2022-03-31 05:19:11
回答 1查看 583关注 0票数 0

我使用节点JS和弹性搜索DB。我正在使用这个包https://www.npmjs.com/package/@elastic/elasticsearch,我在弹性搜索数据库中有这个集合

代码语言:javascript
复制
[
  {
    "_index": "products",
    "_id": "wZRh3n8Bs9qQzO6fvTTS",
    "_score": 1.0,
    "_source": {
      "title": "laptop issues",
      "description": "laptop have issue present in according"
    }
  },
  {
    "_index": "products",
    "_id": "wpRh3n8Bs9qQzO6fvzQM",
    "_score": 1.0,
    "_source": {
      "title": "buy mobile",
      "description": "mobile is in Rs 250"
    }
  },
  {
    "_index": "products",
    "_id": "w5Rh3n8Bs9qQzO6fvzTz",
    "_score": 1.0,
    "_source": {
      "title": "laptop payment",
      "description": "laptop payment is given in any way"
    }
  }
]

现在我计划从弹性数据库中获取数据。当我经过“圈”或“圈”时。它给我的是空白数组还是[]数组,为什么?所有物体都有“搭接”。

我是那样做的

代码语言:javascript
复制
 const result= await client.search({
      index: 'products',
      query: {
        match_phrase: {
            description: "lap"
        }
      }  

我做错了什么。我需要所有的结果,当lap关键字存在时

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 05:59:18

由于要搜索laptop术语的部分字符,因此匹配查询无法工作。

您可以将前缀查询用于单个术语,如下所示:

代码语言:javascript
复制
{
  "query": {
    "prefix": {
      "title": {
        "value": "lap"
      }
    }
  }
}

如果您想搜索短语,那么可以使用短语前缀查询

代码语言:javascript
复制
{
  "query": {
    "match_phrase_prefix": {
      "title": "lap"
    }
  }
}

如果只想匹配查询中的一些单词,那么可以使用match query,并将operator设置为or

代码语言:javascript
复制
POST querycheck/_search
{
  "query": {
    "match": {
      "title": {
        "query": "i have issues",
        "operator": "or"
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71687222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档