相关疑难解决方法(0)

带有多个单词的 Django 全文搜索

这并不是一个真正复杂的问题(据我所知)。

我知道在 MongoDB 中,您可以输入一个字符串,它会使用该字符串作为查询自动标记并执行全文搜索。

但是,在 Django 中,我还没有找到类似的功能,而且我看到的所有示例都做了一些类似的事情:

from django.contrib.postgres.search import SearchQuery
query = SearchQuery('foo')
Run Code Online (Sandbox Code Playgroud)

人们只使用一个词的原因是因为SearchQuery 只能使用一个词吗?

我想知道的是如何进行多词全文搜索。做起来容易吗

from django.contrib.postgres.search import SearchQuery
query = SearchQuery('foo and also bar')
Run Code Online (Sandbox Code Playgroud)

? 还是需要比这更复杂?

python django postgresql

5
推荐指数
1
解决办法
5127
查看次数

Python:如何通过子字符串相关性对字符串列表进行排序?

我有一些字符串列表,例如:

["foo bar SOME baz TEXT bob",
"SOME foo bar baz bob TEXT",
"SOME foo TEXT",
"foo bar SOME TEXT baz",     
"SOME TEXT"]
Run Code Online (Sandbox Code Playgroud)

我希望它按精确度排序到SOME TEXT子串(大写无关紧要).像这样的顺序:

["SOME TEXT",
"foo bar SOME TEXT baz",
"SOME foo TEXT",
"foo bar SOME baz TEXT bob",
"SOME foo bar baz bob TEXT"]
Run Code Online (Sandbox Code Playgroud)

这个想法是 - 最好的分数得到与子串字位置最匹配的字符串.对于子串的单词之间更大量的"草率"单词 - 它得到的排序越低.

我找到了一些像fuzzysetLevenshtein距离的库,但我不确定这是我需要的.根据我的理解,我知道我要排序的确切子字符串和那些libs搜索相似的单词.

实际上我需要在我的Django项目中进行一些数据库查询(Postgresql)之后进行此类操作.我已经尝试使用其ORM进行全文搜索,但没有得到相关的排序顺序(它不计算子字符串单词之间的距离).接下来我尝试过Haystack + Whoosh,但此刻也没有找到信息如何在那里做到这一点.所以现在的想法是获取查询集,然后将其排序出数据库(是的,我知道这可能是一个糟糕的决定,但是现在我希望它只是工作).但是,如果有人告诉我如何在任何技术中做到这一点,我在这里提到 - 这也将是非常酷.谢谢!

ps子串的长度应该是最多20个字符串中的2-10个字.

python sorting

1
推荐指数
1
解决办法
862
查看次数

标签 统计

python ×2

django ×1

postgresql ×1

sorting ×1