我有例如以下列表:從列表中進行查詢與不同價值觀
list1 = ['blue', 'red']
list2 = ['green', 'yellow', 'black']
我怎麼能創建一個查詢(使用PostgreSQL)在搜索所有值。
這將工作正常,但它只有兩個值硬編碼,因此不處理列表中不同數量的值。
entry.objects.annotate(search=SearchVector('colors')).filter(search=SearchQuery('blue') | SearchQuery('red'))
我嘗試以下,以創建「SEARCH_QUERY」的字符串,並將其放置在我的查詢:
for c in color:
search_string += "SearchQuery('" + c +"') | "
search_string = search_string[:-3]
這將導致以下search_strings
SearchQuery('blue') | SearchQuery('red')
SearchQuery('green') | SearchQuery('yellow') | SearchQuery('black')
如果我現在把這個字符串在我的查詢中,它不會工作。
entry.objects.annotate(search=SearchVector('colors')).filter(search=search_string)
我很感謝任何幫助解決這個問題。
鏈接到Django的Postgres的搜索文檔:https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/search/