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

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


咨詢
建站咨詢
