Не удается получить идеальные результаты при использовании ngram
вот код на python, модель включает много внешних ключей. я не знаю как сделать точное соответствие. нам нужны точные результаты для примера instacart.com, этот сайт сделан с помощью elasticsearch.
documents.py:
PUBLISHER_INDEX.settings(
number_of_shards=1,
number_of_replicas=0,
max_ngram_diff= 20
)
html_strip = analyzer(
'html_strip',
tokenizer="standard",
filter=["standard", "lowercase", "stop", "snowball"],
char_filter=["html_strip"]
)
autocomplete_analyzer = analyzer('autocomplete_analyzer',
tokenizer = tokenizer('trigram','nGram',min_gram=1,max_gram=7),
filter=['lowercase']
)
@PUBLISHER_INDEX.doc_type
class NewsDocument(Document):
id = fields.IntegerField(attr='id')
# fielddata=True
code = fields.TextField(
fields={
'raw':{
'type': 'keyword',
}
}
)
uom_id = fields.TextField(
fields={
'raw':{
'type': 'keyword',
}
}
)
item_id= fields.NestedField(properties={
'id' : fields.IntegerField(),
'code' : fields.TextField(),
'name' : fields.TextField(
fields={
'raw':{
'type': 'keyword',
}
},
analyzer = autocomplete_analyzer
),
'barcode': fields.NestedField(),
'qr_code': fields.NestedField(),
'material_id': fields.NestedField(),
'uom_id' : fields.NestedField(),
'group_id': fields.NestedField(),
'brand_id' : fields.NestedField(),
'static_group' : fields.NestedField(),
'image1' : fields.FileField(),
'search_name':fields.TextField(),
'display_name': fields.TextField(),
'alternative_barcode': fields.NestedField(),
'alternative_qrcode': fields.NestedField(),
'alternative_rfid': fields.NestedField(),
'status': fields.TextField(),
'is_active' : fields.BooleanField(),
'is_delete': fields.BooleanField(),
'item_meta':fields.NestedField()
})
name = fields.TextField(
fields={
'raw': {
'type': 'keyword',
}
},
analyzer= autocomplete_analyzer
)
class Django(object):
model = Variant
Получаю вывод, но не точный. как это исправить? вывод: введите описание изображения здесь