elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 如何在elasticsearch中搜索句子的一部分

Node.js 如何在elasticsearch中搜索句子的一部分,node.js,elasticsearch,Node.js,elasticsearch,我正在使用Elasticsearch js制作一个搜索引擎,如下所示: let jobs = await client.search({ index: 'index', type: 'doc', body: { query: { bool: { must: [ { match: { title: 'te

我正在使用Elasticsearch js制作一个搜索引擎,如下所示:

  let jobs = await client.search({
      index: 'index',
      type: 'doc',
      body: {
        query: {
          bool: {
            must: [
              {
                match: {
                  title: 'test'
                }
              }
            ]
          }
        }
      }
    });

如果标题中有'test',它会显示出来,但是当它有类似'hello this is/test'的内容时,它不会显示出来,我如何修复它?

您可以用
*
将字符串包围起来:

let jobs = await client.search({
  index: 'index',
  type: 'doc',
  body: {
    query: {
      bool: {
        must: [
          {
            match: {
              title: '*test*'
            }
          }
        ]
      }
    }
  }
});

请尝试使用
作为前缀,因此
*
现在是
*
。另外请注意,如果“test”与任何大写字母一起出现,它将找不到它匹配查询不支持通配符,您需要使用
通配符
查询,但使用前缀通配符在all@Val那我该怎么搜索呢?试试通配符,但那只是为了测试目的,取决于所需的数据量have@Val通配符起作用,但还有其他方法吗?只是为了确保字符串是字段的子字符串?