0

我可以将文档添加到索引并搜索索引,但如何按语言过滤?例如只有英文文档?

    doc = search.Document(doc_id=str(article.key()), fields=[
        search.TextField(name='title', value=article.title),
        search.TextField(name='text', value=article.text),
        search.TextField(name='city', value=article.city),
        search.TextField(name='region', value=article.region),
        search.NumberField(name='cityID',
                           value=cityID),
        search.NumberField(name='regionID',
                           value=regionID),
        search.NumberField(name='category',
                           value=int(article.category)),
        search.NumberField(name='constant', value=1),
        search.TextField(name='articleID', value=str(article.key().id())),
        search.TextField(name='name', value=article.name),
        search.DateField(name='date',
                         value=datetime.now().date()),
        search.NumberField(name='price', value=price),
        search.NumberField(name='mileage', value=mileage),
        search.NumberField(name='regdate', value=regdate),
        search.TextField(name='type', value=article.type),
        search.TextField(name='currency', value=article.currency),
        search.NumberField(name='company_article',
                           value=company_article),
        search.NumberField(name='hour',
                           value=datetime.now().hour),
        search.NumberField(name='minute',
                           value=datetime.now().minute),
        search.NumberField(name='hasimages',
                           value=hasimages),
        search.TextField(name='url', value=article.url),
        search.TextField(name='serving_url', value=serving_url),
        ], language=language)
    search.Index(name='myIndex').put(doc)

我用代码搜索:

date_desc = search.SortExpression(expression='date',
                                  direction=search.SortExpression.DESCENDING,
                                  default_value=datetime(1999, 01, 01))

hr_desc = search.SortExpression(expression='hour',
                                direction=search.SortExpression.DESCENDING,
                                default_value=1)

min_desc = search.SortExpression(expression='minute',
                                 direction=search.SortExpression.DESCENDING,
                                 default_value=1)

# Sort up to  matching results by subject in descending order
sort = search.SortOptions(expressions=[date_desc, hr_desc,
                                       min_desc], limit=ACCURACY)

# Set query options
options = search.QueryOptions(limit=doc_limit, cursor=cursor,
                              sort_options=sort,
                              number_found_accuracy=10000,
)
query = search.Query(query_string=query_string, options=options)
index = search.Index(name=_INDEX_NAME)
# Execute the query
return index.search(query)

但是如何只搜索英文文档?

4

1 回答 1

5

为每个文档添加一个 atom 字段,包含语言代码的值;然后搜索该原子字段的值。

于 2014-04-17T14:57:42.717 回答