例如,我有一个字符串VOLVO EW 160 C NEUER MOTOR / NEW ENG。VOLVO -是一个品牌,EW 160是一个模型。
我有两张桌子,分别是品牌、和Models。例如,用逗号,分隔的Models表: EW、E、W、S、C、Z、10、16、1.6、10、150、160、EW160、EW 160。
我怎么能检测出哪一种是模型?搜索了一些关于PostgreSQL中的相同函数的文档。
RoR有一些相似的函数,或者检测相似字符串的最佳方法是什么?
,什么是更灵活/更有效的方式?(PostgreSQL或RoR)
UPD:其他字符串示例:VOLVO EW-160 1999, 9000 operating hours。其中的模型是EW-160,但是在数据库中,我没有这个模型,但是有类似的模型EW160或EW 160
发布于 2020-02-19 20:03:48
假设最好的匹配是字符串中包含的最长匹配:
string = 'VOLVO EW 160 C NEUER MOTOR / NEW ENG'
models = ['EW', 'E', 'W', 'S', 'C', 'Z', '10', '16', '1.6', '10', '150', '160', 'EW160', 'EW 160']
matching_models = models.select{ |m| string.include? m }
best_match = matching_models.max_by(&:length)https://stackoverflow.com/questions/60300943
复制相似问题