这就是我想要做的。
用户(一): 在两个字段 (description-1) 和 (description-2) 中输入数据。
用户 (b) 在相反的字段中输入相似的数据。
用户 (a) 或 (b) 搜索两个字段都会找到匹配项。
一个很好的类比是约会搜索。用户 (a) 输入他们自己的描述和他们正在寻找的匹配项,用户 (b) 输入他们自己的描述和他们正在寻找的匹配项,两者都可以进行搜索并找到匹配项。
所以在伪查询英语...
从 me = 'target' 和 target = 'me' 的数据中选择姓名
要注意的是,该字段中的一些词会匹配,但不是全部。
最佳答案
无论采用何种技术,这种类型的匹配都很难。您可能已经贪多嚼不烂。
我建议您阅读 Text Search PostgreSQL 中的数据类型。
PostgreSQL 为全文搜索提供了灵活而强大的解决方案,它可以满足您的需要,而 SQLite 可能不会。
使用 PostgreSQL tsquery
和 tsvector
data types ,您可以将一个用户的描述转换为查询另一个用户描述的形式。 tsquery 和 tsvector 都可以动态生成或保存在数据库列中并建立索引。
如果你还需要使用SQLite,你需要学习各种FTS虚拟表类型。这些都是实验性的,默认情况下不启用。因此,您需要重新编译 SQLite,启用 FTS1、FTS2 或 FTS3。
这些功能的文档非常少。这是我找到的所有内容:
关于SQLite 查询 - 需要全文搜索方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1257821/