Как создать индекс на уровне поля с помощью пакета NEST

Мне нужно создать индексирование на уровне полей в эластичном поиске с помощью пакета NETS. Я использую .net core для разработки.

Здесь у меня есть поля Имя, Mobile_number, app_id, адрес, country .

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

Я использую приведенный ниже код для создания индекса:

[ElasticProperty(Store=false, Index=FieldIndexOption.not_analyzed)]

Я получаю следующие ошибки:

Не удалось найти тип или имя пространства имен ElasticPropertyAttribute (вам не хватает директивы using или ссылки на сборку?)

Не удалось найти тип или имя пространства имен ElasticProperty (вам не хватает директивы using или ссылки на сборку?)

Не удалось найти тип или имя пространства имен Store (вам не хватает директивы using или ссылки на сборку?)

Не удалось найти тип или имя пространства имен 'Index' (вам не хватает директивы using или ссылки на сборку?)

'FieldIndexOption' не содержит определения для 'not_analyzed'

Если возможно, я ожидаю простого рабочего исходного кода с пользовательским интерфейсом.

Как я могу создать индекс для полей.

Спасибо...


person SATHEESH P    schedule 07.01.2019    source источник
comment
Похоже, вы пытаетесь использовать код из более старой версии пакета с более новой версией пакета. Ознакомьтесь с документацией по сопоставлению атрибутов, чтобы узнать, как это сделать с помощью NEST 6.x: elastic.co/guide/en/elasticsearch/client/net-api/current/.   -  person Russ Cam    schedule 07.01.2019
comment
Спасибо Russ Cam. Можете ли вы дать мне какие-нибудь рабочие образцы?   -  person SATHEESH P    schedule 08.01.2019
comment
Есть рабочий пример документации, с которой я связался   -  person Russ Cam    schedule 08.01.2019


Ответы (1)


[ElasticProperty (Store = false, Index = FieldIndexOption.not_analyzed)]

Для ElasticType он был перенесен в ElasticsearchType, а для ElasticProperty он был перенесен в определенное свойство, например Date, Text и т. Д. Check Сопоставление на основе атрибутов.

Вот простая демонстрация:

[ElasticsearchType(Name = "othername", IdProperty = "MyId")]
public class Foo
{
    [Text(Store = false, Index = true, IndexOptions = IndexOptions.Docs)]
    public Guid MyId { get; set; }
    [Date(Format = "mmddyyyy")]
    public DateTime Date { get; set; }
    [Number(NumberType.Integer, Coerce = true, DocValues = true)]
    public int Number { get; set; }
}

Еще один момент, проверьте [5.0 Breaking Change] String -> Keyword or Text # 2384

person Edward    schedule 08.01.2019