Solr многоязычный поиск - PullRequest
1 голос
/ 27 мая 2011

Я хочу знать, как настроить Solr для многоязычного поиска. У меня есть сайт с поиском Solr. Это работает для английского языка, я хочу работать для всех языков.

Ниже моя схема ..

<field name="url" type="string" indexed="true" stored="true" required="true" multiValued="false" />
        <field name="title" type="text" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="content" type="text" indexed="true" stored="true" required="true" multiValued="false" />
        <field name="contenttype" type="string" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="contentsize" type="integer" indexed="false" stored="true" required="false" multiValued="false" />
        <field name="timestamp" type="date" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="language" type="string" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="description" type="text" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="keywords" type="text" indexed="true" stored="true" required="false" multiValued="false" />    
    <field name="keywordsNoneStemmed" type="string" indexed="true" stored="true" required="false" multiValued="true" />    
        <field name="thumbnail" type="string" indexed="true" stored="true" required="false" multiValued="false" />
    <field name="virtualitem" type="boolean" indexed="true" stored="true" required="false" multiValued="false" />
    <field name="section" type="string" indexed="true" stored="true" required="false" multiValued="false"></field>
    </fields>

Когда я увидел файл журнала, Solr индексирует URL на разных языках, но я не знаю, как отобразить результат поиска. Мой сайт использует технологии .net

1 Ответ

0 голосов
/ 09 июля 2011

Волшебной пули нет.Если вы знаете язык вводимых текстов, вы можете хранить языки в разных полях и использовать разные основы в зависимости от языка.Или вы могли бы избежать стеммеров и вместо этого использовать нграммы.

Если вы продолжаете использовать стоп-слова и защищенные слова, вам нужно будет отредактировать их, чтобы они не были слишком агрессивными.Например, «is» и «by» являются стоп-словами в английском языке, но они означают «лед» и «город» во многих скандинавских языках.Поэтому вы бы удалили их из стоп-слов, но, возможно, захотите добавить «je» и «il», потому что это французские стоп-слова.Но «je» имеет разные значения в таких языках, как нидерландский и сербский, поэтому, возможно, нет ...

Начните с обрезания цепочки токенизаторов, анализаторов, фильтров, а затем проведите некоторое тестирование с людьми, которые свободно говорят на другихязыки.Пусть они покажут вам странные результаты и объяснят, почему они странные.И посмотрите на восточные языки, потому что нграммы - единственный способ справиться с ними.

...