I can add docs to the index and search the index but how can I filter by language? For instance only docs in English?
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)
I make a search with the code:
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)
But how do I search for docs only in English?
Add an atom field to each document, containing the value of the language code; then search on the value of that atom field.