使用redis om & node js进行模糊搜索

7bsow1i6  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(239)

我一直在尝试在redis search中实现模糊搜索,redis om with node js。我看过像this这样的文章,但我还没有设法修复它。
这是我目前正在实现的搜索的代码示例。

let searchResults = await repository.search()
        .where("country").equal(correctCountry)
        .where("city").equal(city.toLocaleLowerCase())
        .and("descriptionAndStreet")
        .matches(placedescription + "*").return.page(0, 20)

我想在搜索“placedescription”时实现模糊搜索。
如有任何帮助,我们将不胜感激。

oxcyiej7

oxcyiej71#

找到解决方案
Redis OM没有一个流畅的界面来进行模糊匹配,但是你可以进行一个原始搜索(https://github.com/redis/redis-om-node/#running-raw-searches),并传入你想要的任何查询:

let query = `@country:{${correctCountry}} @city:{${city}} @descriptionAndStreet:%Whatyouwanttosearch%`

    let places = await placeRepository.searchRaw(query).return.page(0, 10)

如果您要搜索多个单词,即空格分隔

let query = `@country:{${correctCountry}} @city:{${city}} 
     @descriptionAndStreet:%What% %you% %want% %to% %search%`

如果遇到问题,可以尝试删除中间的空格

%What%%you%%want%%to%%search%

相关问题