新聞中心
標準數(shù)據(jù)庫操作對于大量文本搜索來說太過簡陋了。雖然上面的示例可以看作是對字符串的操作,但是全文搜索查看的是實際的單詞。依據(jù)所使用的系統(tǒng),可以采用下面的某些方法:

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了橫山免費建站歡迎大家使用!
- 忽略 “停用詞語”,例如 "a","the","and"。
- 詞干化,這樣 "pony" 和 "ponies" 會被認為是一樣的。
- 根據(jù)不同的標準為單詞設置權(quán)重,例如其在文本中出現(xiàn)的頻率,或所屬字段(如標題或關(guān)鍵字)的重要性。
使用搜索軟件有很多選項,最常見的有 Elastic 和 Solr。它們都是基于全文搜索的解決方案。要用它們搜索來自 Django 模型的數(shù)據(jù),你需要一個抽象層,將數(shù)據(jù)(包括對數(shù)據(jù)庫 id 的指針)轉(zhuǎn)換為文本文檔。當使用該引擎的某次搜索返回了一份文檔,你可以在數(shù)據(jù)庫中查看它。有很多第三方庫被設計為處理這種問題。
PostgreSQL 支持
PostgreSQL 內(nèi)置了其專屬的全文本搜索實現(xiàn)。雖然并不像其它搜索引擎那樣強大,但它的優(yōu)點是內(nèi)置在數(shù)據(jù)庫中,所以它能很方便的與其它關(guān)聯(lián)查詢條件進行聯(lián)合查詢,如按分類查詢。
?django.contrib.postgres? 模塊提供了一些助手函數(shù)來執(zhí)行這些查詢。例如,查詢可能篩選出所有提到了 "cheese" 的博客條目:
>>> Entry.objects.filter(body_text__search='cheese')
[, ]
你也可以在聯(lián)合字段或關(guān)聯(lián)模型上進行篩選:
>>> Entry.objects.annotate(
... search=SearchVector('blog__tagline', 'body_text'),
... ).filter(search='cheese')
[
,
,
,
]
本文題目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0搜索-文檔搜索
網(wǎng)頁路徑:http://m.fisionsoft.com.cn/article/cojdehj.html


咨詢
建站咨詢
