Как мы добавляем функции, как вы имели в виду это и предложение - PullRequest
0 голосов
/ 14 октября 2019

Я создаю поисковую систему, использующуюasticsearch, в которой мне нужны такие функции, как «Вы имели в виду это» и «Предложения», как это делает Google. Мой указатель содержит документ, подобный следующему: {"نام": "قرآنی انسائیکلوپیڈیا", "موضوع": "کائنات کی بامقصد تخلیق سے استدلال", "عربیں مل": аргумент ":"от создания космоса с целью (то есть аргумент от телеологии) " "حوالہ": "ألم تر أن الله خلق السماوات والأرض بالحق إن يشأ يذهبكم ويأت بخلق جديد", "ترجمہ":" (! اے سننے والے) کیا تونے نہیں دیکھا کہ بیشک اللہ نے آسمانوں اور زمین کو حق (پر مبنی حکمت) کے ساتھ پیدا فرمایا اگر وہ چاہے (تو) تمہیں نیست و نابود فرما دے اور (تمہاری جگہ) نئی مخلوق لے آئے " "باب.":"(إِبْرَاهِيْم, 14: 19) ",

} Это всего лишь один документ, у меня есть большое количество документов, подобных этому, с такими же полями, так как же я могу добавить такие функции в индекс, содержащий документ, подобный этому! Пожалуйста, помогите

1 Ответ

0 голосов
/ 14 октября 2019

Если вы хотите реализовать функцию «Вы имели в виду», вы можете сделать это с помощью Предложение . Во-первых, вы должны сделать новый анализатор, который использует nGrams (черепица). Затем установите анализатор на поле. Наконец, используйте запрос:

{
"suggest": {
    "text": " (your text here) ",
    "phrase_suggestion": {
        "phrase": {
            "field": "test.trigram",
            "max_errors": 0.95,
            "real_word_error_likelihood": 0.95,
            "gram_size": 2,
            "size": 3,
              "direct_generator" : [ {
      "field" : "test.trigram",
      "suggest_mode" : "popular",
                "min_word_length": 1
    }]
        }
    }
}

. Вы можете прочитать больше о параметрах выше в документации .

ПРИМЕЧАНИЕ : (тест. триграмма):

test = ваше поле,

trigram = ваш анализатор

...