Node.js 如何在elasticsearch中搜索句子的一部分
我正在使用Elasticsearch js制作一个搜索引擎,如下所示: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
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通配符起作用,但还有其他方法吗?只是为了确保字符串是字段的子字符串?