bounty将在6天后过期。回答此问题可获得+50声望奖励。Batuhan B希望引起更多关注此问题。
我有一个包含长度从1到10个单词不等的术语的列表,大约有500,000个条目。(从PDF转换,通常1.5至2页长)。我需要执行的搜索不仅作为精确匹配,但也使用模糊(例如,术语“莱昂内尔梅西”应该匹配文本中的“莱昂内尔梅西”)和接近选项(例如,术语“莱昂内尔梅西”应该匹配文本中的“莱昂内尔J.梅西”)。
我的目标是近实时地解决这个问题(1-2秒)。我尝试过使用trie数据结构和并行化,但特别是当模糊方面发挥作用时,列表的大小和PDF长度导致处理时间很长(大约30秒)。
我该如何处理这个问题?
1.我可以用Python库(使用并行化、trie结构等)动态处理它吗?
- PostgreSQL中是否有支持这种搜索的特性?
1.我应该使用像Elasticsearch这样的框架吗?”
1条答案
按热度按时间4sup72z81#
postgres提供了原生的全文搜索功能,如https://www.postgresql.org/docs/current/textsearch.html或https://www.postgresql.org/docs/current/pgtrgm.html
还有一些扩展,比如最近的https://docs.paradedb.com/blog/introducing_bm25或https://github.com/pgvector/pgvector,它们作用于LLM生成的向量(f.e)。