【发布时间】:2018-02-18 17:04:11
【问题描述】:
我对 Elasticsearch 有点陌生,我想知道如何对特定字段的查询进行部分匹配。
假设我有一个名为“部门”的字段,它的值是“会计”。因此,当我搜索“会计”之类的内容时,我应该能够得到结果。
例如:- 以下是我的两个文件:
{
"name": "Joe",
"department": "finance"
},
{
"name": "Matt",
"department": "accounting"
}
我在department 字段上的搜索查询是The accounting 或The accounting department,我的预期结果应该是:
{
"name": "Matt",
"department": "accounting"
}
更新:
@Russ Cam:标准分析器会删除所有标点符号和特殊字符,所以如果我将字段部门中的值保存为 dept/accounting 并且当我搜索 dept: the dept/accounting 时,我应该得到那些具有部门的文档值为dept/accounting。
当有人搜索 dept 或 accounting 时,我不希望 ES 向我提供部门为 dept/accounting 的文件。这可能吗?
假设以下是我在ES中的文档:
{
"name": "Matt",
"department": "dept/accounting"
},
{
"name": "Kate",
"department": "dept"
},
{
"name": "Adam",
"department": "accounting"
}
用户搜索dept,得到:
{
"name": "Kate",
"department": "dept"
}
当用户搜索blah blah dept/accounting blah 时,他应该只得到这个:
{
"name": "Matt",
"department": "dept/accounting"
}
【问题讨论】:
标签: c# elasticsearch kibana elasticsearch-net nosql