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"]因为这是与我的搜索键最接近的匹配.
我希望它从给定的搜索键返回最接近的匹配.
我可以使用任何助手/图书馆/宝石吗?有没有人这样做过?
我认为你可以自己完成,不需要使用任何宝石!这可能接近您的需要;在数组中搜索键并为每个找到的元素设置一个排名。
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)
这段代码可以写得比上面的更好,但我想向您展示详细信息。
| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |