2016-11-17 67 views
2

我正在嘗試將django 1.10與postgres數據庫進行全文搜索。 我從 https://docs.djangoproject.com/en/1.10/ref/contrib/postgres/search/django 1.10 postgres全文搜索不起作用

class Question(models.Model): 
    text = models.TextField(max_length=500) 
    ans = models.TextField(max_length=1500, blank=True) 

下面的教程我在其中具有文本「爲」在例如它的文本字段的數據庫中的幾個問題:一個問題是:

text: what is best for me? 
ans: this is best for you. 

我想進行查詢如

q = Question.objects.filter(text__search='for') 

但是這個查詢沒有返回任何結果。誰能告訴我爲什麼?

+1

要使用搜索查找,'django.contrib.postgres'必須位於您的INSTALLED_APPS中。你把它放在那裏 – user2693928

+1

(1)通過在PostgreSQL中打開語句日誌並檢查日誌來檢查實際正在運行的查詢。 (2)確保「for」不是字典中的一個停用詞並過濾掉。 –

+0

我在postgres中添加了'django.contrib.postgres'。這不僅是'爲'字。如果我替換爲'the'之類的其他詞,那麼它也不會顯示正確的結果。我的查詢: \t SELECT•••FROM「faq_question」WHERE to_tsvector(COALESCE(「faq_question」。「text」,''))@@(plainto_tsquery('for'))= true –

回答

3

這實際上是我的錯誤。對於Postgres創建索引時的全文搜索,默認情況下忽略常用詞,如'the','for','are','is'等。如果您嘗試使用此關鍵字進行搜索,即使有這些詞語有很多句子。 我不知道這一點。所以我認爲我配置錯了。