Подтвердить что ты не робот

Поиск Solr и фасети

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

В основном ли он работает из всех полей, которые вы настроили для сортировки?

то вы просто используете синтаксис запроса fq, и он вернет фасет xml вместе с результатами поиска?

Есть ли хорошая статья об этом, которая помогла вам в первый раз?

4b9b3361

Ответ 1

Да, вы можете факсировать любое индексированное поле из коробки. Однако это может не дать вам ожидаемых результатов, пока вы не настройте поля факела в соответствии с вашими типами данных.

Графика включена и используется с помощью facet. * parameters, а не fq. fq используется, когда пользователь выбирает значение грани.

Несколько полезных советов Solr:

Ответ 2

Да, просто добавьте &facet=true&facet.field={fieldname} к вашему запросу Url.

Вот еще один учебник: Faceting

Ответ 3

Нижеприведенный код на С#, используя пакет SolrNet. Facet вы можете сделать это на полях, хранящихся в SOLR, убедитесь, что их строка и не имеет места для достижения лучших результатов. Mincount предназначен для ограничения минимального количества, которое должно быть указано в фасете.

        QueryOptions options = new QueryOptions
        {                
            Facet = new FacetParameters
            {
                Queries = new ISolrFacetQuery[]
                {
                    new SolrFacetFieldQuery("field1"),
                    new SolrFacetFieldQuery("field2")
                },
                MinCount = 20
            }
        };

И приведенный ниже код для получения результатов, запрос - это поиск, введенный в интерфейсе.

    var result = solr.Query(query, options);

Ответ 4

Faceting из справочника руководства Apache solr.

Ответ 5

Пакет SolrNet от Nuget Packages в С# обеспечивает простой способ достижения этого. Документация помогает. Вот пример,

public async Task SolrFaceting()
    {
        Console.WriteLine("facets");
        var facetQuery = await _solr.QueryAsync(SolrQuery.All, new QueryOptions
        {
            Rows = 0,
            Facet = new FacetParameters
            {
                Queries = new[]
                {
                    new SolrFacetFieldQuery("FieldName1"),
                    new SolrFacetFieldQuery("FieldName2"),
                    new SolrFacetFieldQuery("FieldName3"),
                    new SolrFacetFieldQuery("FieldName4"),
                },
                Limit = 10

            }
        });

        foreach (var facet in facetQuery.FacetFields["FieldName1"]) {
            Console.WriteLine("{0}: {1}", facet.Key, facet.Value);
        }
        foreach (var facet in facetQuery.FacetFields["FieldName2"]) {
            Console.WriteLine("{0}: {1}", facet.Key, facet.Value);
        }
        foreach (var facet in facetQuery.FacetFields["FieldName3"]) {
            Console.WriteLine("{0}: {1}", facet.Key, facet.Value);
        }
        foreach (var facet in facetQuery.FacetFields["FieldName4"]) {
            Console.WriteLine("{0}: {1}", facet.Key, facet.Value);
        }
    }