Google Search API - 可以进行IN查询吗?

问题描述 投票:1回答:2

使用Search API,是否可以进行IN查询?在哪里可以查询包含在字符串数组中的字符串参数的文档?

google-app-engine google-cloud-platform
2个回答
2
投票

Search API没有IN运算符,但可以使用OR运算符进行模拟。例如,pattern IN [word1, word2, word3]pattern IN word_listcan写成:

index.search('word1 OR word2 OR word3')

并分别为:

index.search(' OR '.join(word_list))

0
投票

是的,可以按内容查询文档。有几种可能性,你可以在Searching for documents by their contents找到这个例子:

def query_index():
    index = search.Index('products')
    query_string = 'product: piano OR price < 5000'

    results = index.search(query_string)

    for scored_document in results:
        print(scored_document)

您还可以找到有关Query Classits options的更多信息,以及更多关于how queries work的文档,例如:

最简单的查询(有时称为“全局搜索”)是仅包含字段值的字符串。此搜索使用一个字符串来搜索包含“rose”和“water”字样的文档:

def simple_search(index):
    index.search('rose water')

如果字符串数组太大,则使用带有字符串数组的类别数组可以选择稍微降低成本。可以排除某些类别,这有助于减少查询处理时间。例如:

categories=[['animal','dog','cat','fish'],['positive','good','fine','great'],['negative','horrible',disgusting','awful'],['water recreation', 'relax','holidays','spa','beach','sea']]


def query_index():
    index = search.Index('products')
    for categ in categories:
        query_string = ' OR '.join(categ)
        results = index.search(query_string)
        if len(results)>0:
            print(categ[0])
            break

    for scored_document in results:
        print(scored_document)
© www.soinside.com 2019 - 2024. All rights reserved.