【发布时间】:2019-08-18 07:20:28
【问题描述】:
假设我有搜索词:
"Terminator 2 US" (search terms can be in any order)
而我的数据如下:
movie country year
Terminator 2 US 1990
Avatar CA 2000
Terminator 2 GB 1990
2001: A Space Odyssey US 1980
我应该得到的结果只是第一行,基于 movie=Terminator 2 的完全匹配和 country=US 的完全匹配。
但是,如果我要按术语分解所有内容并根据确切值比较每个内容。我会得到以下信息:
terminator ==> miss
2 ==> miss
us ==> match
这是否意味着进行搜索,我需要创建以下三种搜索模式来检查:
MATCH "terminator" AND MATCH "2" AND MATCH "US"
OR
MATCH "terminator 2" AND MATCH "US"
OR
MATCH "terminator 2 US"
或者,进行这种多字段搜索的最佳方式是什么?例如,如果我在搜索词中有 100 个单词怎么办?例如,这是搜索中的常见模式还是我可能遗漏了什么?
for row in row:
if (row['movie'] == "Terminator 2 US") \
or (row['movie'] == "Terminator 2") and row['country'] == 'US' \
or (row['movie'] == "Terminator") and row['country'] == '2 US' \
or (row['movie'] == "US") and row['country'] == 'Terminator 2' \
or (row['movie'] == "Terminator 2") and row['year'] == 'US' \
or (row['movie'] == "Terminator") and row['year'] == '2 US' \
or (row['movie'] == "US") and row['year'] == 'Terminator 2' \
# etc...
【问题讨论】: