code: def _filter_in(self, term_list, field_name, field_type, is_not):
          
          query_list = [self._filter_exact(term, field_name, field_type, is_not=False)
                        for term in term_list]
  
          if is_not:
              return xapian.Query(xapian.Query.OP_AND_NOT, self._all_query(),
                                  xapian.Query(xapian.Query.OP_OR, query_list))
          else:
              return xapian.Query(xapian.Query.OP_OR, query_list)
docs: Returns a query that matches exactly ANY term in term_list.
  
          Notice that:
           A in {B,C} <=> (A = B or A = C)
           ~(A in {B,C}) <=> ~(A = B or A = C)
          Because OP_AND_NOT(C, D) <=> (C and ~D), then D=(A in {B,C}) requires `is_not=False`.
  
          Assumes term is a list.