Арабские символы не распознаются в эластичном поиске - PullRequest
0 голосов
/ 10 июня 2018

Кто-нибудь сталкивался с этой проблемой раньше, я выдвинул арабский документ вasticsearch, и когда я получаю его обратно, все символы внутри него приходят в проводном формате, даже Unicode не сбежал.увидеть ниже.Кто-нибудь знает, в чем проблема?

{
    "script": 
    {
        "phrases": 
        [
            {
                "phrase": "'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-E/ E1*6I",
                "alternativePhrases": [
                    "'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-E/ E.*'1",
                    "'(H 'DE:J+ B/3 'DDG 1H-G (4J! H'DB/3 'DDG '-F' AJ 7'('",
                    "'(H 'DE:J+ B/3 'DDG 1H-G (4J! 'DB/3J 'DDG '-E/ E.*'1",
                    "'(H 'DE:J+ B/3 'DDG 1H-G (4J! 'DB/3 'DDG '-E/ E1*6I"
                ]
            },
            {
                "phrase": " E' 5-G 'D/9'! D'-/",
                "alternativePhrases": [
                    " E' 5-G 'D/9'! 9DI '-/",
                    " E3-* 'D/9'! D'-/",
                    " E' 5-G 'D/9'! D' '-/",
                    " E' 5-G 'D/9'! H'D'-/"
                ]
            }
        ]
    }
}

Это был оригинальный документ (примечание: не тот же текст)

{
    "script": 
    {
        "phrases": 
        [
            {
                "phrase": " اغنيه عن اب ليس فقط عن العين",
                "alternativePhrases": [
                    " غريب عين ابليس سقط عن العين",
                    " غير عين ابليس سقط عن العين",
                    " غير عين ابليس فقط عن العين",
                    " غريب عين ابليس فقط عن العين"
                ]
            },
            {
                "phrase": " كشاف على العين العين بالاحكام",
                "alternativePhrases": [
                    " كشاف على العين العين من له احكام",
                    " كشف الهوى العين العين من له احكام",
                    " كشاف على العين العيب من له احكام",
                    " كشاف على العين العين من الاحكام"
                ]
            }
        ]
    }
}

Кроме того, это отображение индекса:

PUT _template/ar-template
{
    "index_patterns": 
    [
        "*ar-idx*"
    ],
    "mappings": 
    {
        "doc": 
        {
            "dynamic": "strict",
            "properties": 
            {
                "script": 
                {
                    "properties": 
                    {
                        "phrases": 
                        {
                            "properties": 
                            {
                                "alternativePhrases": 
                                {
                                    "type": "text",
                                    "fields": 
                                    {
                                        "keyword": 
                                        {
                                            "type": "keyword",
                                            "ignore_above": 256
                                        }
                                    }
                                },
                                "endTime": 
                                {
                                    "type": "keyword",
                                    "ignore_above": 256
                                },
                                "phrase": 
                                {
                                    "type": "text",
                                    "fields": 
                                    {
                                        "keyword": 
                                        {
                                            "type": "keyword",
                                            "ignore_above": 256
                                        }
                                    }
                                },
                                "startTime": 
                                {
                                    "type": "keyword",
                                    "ignore_above": 256
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "settings": 
    {
        "index": 
        {
            "number_of_shards": "5",
            "refresh_interval": "30s",
            "number_of_replicas": "1"
        }
    }
}

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать токенизаторы для преобразования ваших арабских входных данных в Unicode.Например, в документации ELK токенизатор показан для преобразования арабских литералов в эквивалентную латиницу.Создайте шаблон индекса и включите эти токенизаторы и фильтры.

Вот ссылка на документацию, на которую я ссылался: Elastic Search Unicode Character Folding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...