Я хочу использовать токен-фильтр min_hash
для поиска похожих документов.
В конце концов, я бы хотел достичь отдельного поля minhash. Чтобы в данном документе я мог использовать его поле minhash для поиска похожих документов.
Буду признателен за совет для любого другого сценария, который решает проблему.
Я могу создать собственный анализатор, создать сопоставления для добавления minhash к инвертированному индексу. Со следующим кодом.
PUT /my_index
{
"index": {
"analysis": {
"analyzer": {
"minhash_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"min_hash"
]
}
}
}
}
}
PUT my_index/_doc/_mapping
{
"properties": {
"description": {
"type": "text",
"analyzer": "minhash_analyzer"
}
}
}
PUT my_index/_doc/1
{
"description": "sample text"
}
GET my_index/_doc/1
Я могу проверить свой анализатор, чтобы убедиться, что он работает правильно:
POST my_index/_analyze
{
"analyzer": "minhash_analyzer",
"text": "sample text"
}
, который возвращает мне ответ:
{
"tokens" : [
{
"token" : "쵴ᏸ飖荺氁㐫ﴯ틖",
"start_offset" : 0,
"end_offset" : 11,
"type" : "MIN_HASH",
"position" : 0
},
{
"token" : "쵴ᏸ飖荺氁㐫ﴯ틖",
"start_offset" : 0,
"end_offset" : 11,
"type" : "MIN_HASH",
"position" : 0
},
...
{
"token" : "쵴ᏸ飖荺氁㐫ﴯ틖",
"start_offset" : 0,
"end_offset" : 11,
"type" : "MIN_HASH",
"position" : 0
}]
}
Проблема в том, что в данном сценарии я не могу получить фактическое значение minhash для документа (например, строки в кодировке base64).
Какой-нибудь совет, чтобы решить проблему?