.net 使用“与NEST匹配”进行搜索不会返回结果

8ehkhllq  于 2023-03-04  发布在  .NET
关注(0)|答案(1)|浏览(153)

我正在尝试执行全文搜索。在Elastic docs上,它显示“返回与提供的文本、数字、日期或布尔值匹配的文档。在匹配之前分析提供的文本。”但在我这边没有发生。
举个例子,让我们说我试图搜索“法拉利”。但当我搜索“费尔”没有出现。

var response = await _elasticClient.SearchAsync<Product>(x => x
    .Size(10)
    .Query(q => q
        .Match(m => m
            .Field(f => f.Title)
            .Query("Ferr"))));

但是当我搜索“Ferrari”时,它就出现了,这对我来说毫无意义,因为这是词条查询应该做的,而不是匹配。
我可以使用通配符,但这通常不太有效。这是数据的外观

{
    "_index": "product",
    "_id": "33c9c3ab-0be8-4e70-83a2-1112fd528e65",
    "_version": 1,
    "_seq_no": 2,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "id": "33c9c3ab-0be8-4e70-83a2-1112fd528e65",
        "title": "Ferrari",
        "description": "car",
        "price": 500000,
        "quantity": 100,
        "timestamp": "0001-01-01T00:00:00+00:00"
    }
}
0yg35tkg

0yg35tkg1#

我以前也遇到过同样的问题,模糊查询可以用Fuzziness.AutoLength匹配。
在您的场景中,如果您搜索FerrariFerr找不到任何东西,但是Ferrar可能可以,所以我认为这是匹配准确性的问题。

相关链接

模糊。自动长度用法

相关问题