def _ownership_search(request): query = request.GET.get("q", "") fields_to_search = [ "owner", "asset", "ownership_ground", "ownership_form", "share", "comment", "mortgage_charge", "mortgage_details", "mortgage_charge_subjects", "mortgage_holder", "mortgage_mortgagor", "mortgage_guarantor", "mortgage_other_persons" ] if query: ownerships = ElasticOwnership.search().query("multi_match", query=query, operator="and", fields=fields_to_search) if ownerships.count() == 0: # PLAN B, PLAN B ownerships = ElasticOwnership.search().query( "multi_match", query=query, operator="or", minimum_should_match="2", fields=fields_to_search) else: ownerships = ElasticOwnership.search().query("match_all") return paginated_search(request, ownerships)
def handle(self, *args, **options): Index(ElasticAddress._doc_type.index).delete(ignore=404) ElasticAddress.init() es = connections.get_connection('default') es.indices.put_settings( index=ElasticAddress._doc_type.index, body={ "number_of_replicas": 0, 'index.max_result_window': 50000 } ) Address.objects.reindex() self.stdout.write( 'Loaded {} addresses to persistence storage'.format( Address.objects.count())) ownership_idx.delete(ignore=404) ownership_idx.create() ElasticOwnership.init() Ownership.objects.select_related("prop__address").reindex() self.stdout.write( 'Loaded {} ownerships to persistence storage'.format( Ownership.objects.count()))
def _ownership_search(request): query = request.GET.get("q", "") fields_to_search = [ "owner", "asset", "ownership_ground", "ownership_form", "share", "comment", "mortgage_charge", "mortgage_details", "mortgage_charge_subjects", "mortgage_holder", "mortgage_mortgagor", "mortgage_guarantor", "mortgage_other_persons"] if query: ownerships = ElasticOwnership.search().query( "multi_match", query=query, operator="and", fields=fields_to_search ) if ownerships.count() == 0: # PLAN B, PLAN B ownerships = ElasticOwnership.search().query( "multi_match", query=query, operator="or", minimum_should_match="2", fields=fields_to_search ) else: ownerships = ElasticOwnership.search().query("match_all") return paginated_search(request, ownerships)
def _ownership_search(request): query = request.GET.get("q", "") if query: return paginated_search(request, ElasticOwnership.search().query( "match", _all={"query": query, "minimum_should_match": "2"} )) return paginated_search( request, ElasticOwnership.search().query("match_all"))
def handle(self, *args, **options): Index(ElasticAddress._doc_type.index).delete(ignore=404) ElasticAddress.init() Address.objects.reindex() self.stdout.write("Loaded {} addresses to persistence storage".format(Address.objects.count())) ElasticOwnership.init() Ownership.objects.select_related("prop__address").reindex() self.stdout.write("Loaded {} ownerships to persistence storage".format(Ownership.objects.count()))
def handle(self, *args, **options): Index(ElasticAddress._doc_type.index).delete(ignore=404) ElasticAddress.init() Address.objects.reindex() self.stdout.write('Loaded {} addresses to persistence storage'.format( Address.objects.count())) ElasticOwnership.init() Ownership.objects.select_related("prop__address").reindex() self.stdout.write('Loaded {} ownerships to persistence storage'.format( Ownership.objects.count()))
def assume(q, fuzziness): search = ElasticOwnership.search()\ .source(['full_name_suggest', 'owner'])\ .params(size=0)\ .suggest( 'name', q, completion={ 'field': 'full_name_suggest', 'size': 10, 'fuzzy': { 'fuzziness': fuzziness, 'unicode_aware': True } } ) res = search.execute() if res.success(): return list( set(val._source.owner for val in res.suggest.name[0]['options'])) else: return []
def assume(q, fuzziness): search = ElasticOwnership.search()\ .suggest( 'name', q, completion={ 'field': 'full_name_suggest', 'size': 10, 'fuzzy': { 'fuzziness': fuzziness, 'unicode_aware': 1 } } ) res = search.execute() if res.success(): return [val['text'] for val in res.suggest['name'][0]['options']] else: []
def suggest(request): search = ElasticOwnership.search()\ .suggest( 'name', request.GET.get('q', ''), completion={ 'field': 'full_name_suggest', 'size': 10, 'fuzzy': { 'fuzziness': 2, 'unicode_aware': 1 } } ) res = search.execute() if res.success(): return JsonResponse( [val['text'] for val in res.suggest['name'][0]['options']], safe=False ) else: return JsonResponse([], safe=False)