ruby搜索关键字数组

Nor*_*o23 5 ruby arrays search

我正在解析ruby脚本中的大型CSV文件,需要从某些搜索键中找到最接近的标题匹配项.搜索键可能是一个或多个值,值可能不完全匹配,如下所示(应该关闭)

search_keys = ["big", "bear"]
Run Code Online (Sandbox Code Playgroud)

包含我需要搜索的数据的大型数组,只想搜索title列:

array = [
          ["id", "title",            "code", "description"],
          ["1",  "once upon a time", "3241", "a classic story"],
          ["2",  "a big bad wolf",   "4235", "a little scary"],
          ["3",  "three big bears",  "2626", "a heart warmer"]
        ]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望它返回行,["3", "three big bears", "2626", "a heart warmer"]因为这是与我的搜索键最接近的匹配.

我希望它从给定的搜索键返回最接近的匹配.

我可以使用任何助手/图书馆/宝石吗?有没有人这样做过?

M.E*_*aka 1

我认为你可以自己完成,不需要使用任何宝石!这可能接近您的需要;在数组中搜索键并为每个找到的元素设置一个排名。

result = []
array.each do |ar|
    rank = 0
    search_keys.each do |key|
        if ar[1].include?(key)
            rank += 1
        end
    end

    if rank > 0
        result << [rank, ar]
    end 
end
Run Code Online (Sandbox Code Playgroud)

这段代码可以写得比上面的更好,但我想向您展示详细信息。