我使用节点JS和弹性搜索DB。我正在使用这个包https://www.npmjs.com/package/@elastic/elasticsearch,我在弹性搜索数据库中有这个集合
[
{
"_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"
}
}
]现在我计划从弹性数据库中获取数据。当我经过“圈”或“圈”时。它给我的是空白数组还是[]数组,为什么?所有物体都有“搭接”。
我是那样做的
const result= await client.search({
index: 'products',
query: {
match_phrase: {
description: "lap"
}
} 我做错了什么。我需要所有的结果,当lap关键字存在时
发布于 2022-03-31 05:59:18
由于要搜索laptop术语的部分字符,因此匹配查询无法工作。
您可以将前缀查询用于单个术语,如下所示:
{
"query": {
"prefix": {
"title": {
"value": "lap"
}
}
}
}如果您想搜索短语,那么可以使用短语前缀查询
{
"query": {
"match_phrase_prefix": {
"title": "lap"
}
}
}如果只想匹配查询中的一些单词,那么可以使用match query,并将operator设置为or。
POST querycheck/_search
{
"query": {
"match": {
"title": {
"query": "i have issues",
"operator": "or"
}
}
}
}https://stackoverflow.com/questions/71687222
复制相似问题