Bắt đầu với Máy khách NodeJs Tìm kiếm Đàn hồi
ES: Tìm kiếm đàn hồi
điều kiện tiên quyết
Tìm kiếm đàn hồi là gì? Tìm kiếm đàn hồi hoạt động như thế nào? Tạo Chỉ mục mới với ánh xạ và cài đặt trong Tìm kiếm đàn hồi?Trong các bài viết trước của chúng tôi về Tìm kiếm đàn hồi, chúng ta đã tìm hiểu về những điều cơ bản của Tìm kiếm đàn hồi, cách thức hoạt động của nó và cách tạo chỉ mục mới. Trong bài viết này, chúng ta sẽ tiếp tục làm việc với ứng dụng khách NodeJS Tìm kiếm đàn hồi và khám phá cách lập chỉ mục các tài liệu mới, cập nhật các tài liệu đã lập chỉ mục hiện có và xóa các tài liệu đã lập chỉ mục. Bằng cách hiểu các tính năng này, chúng tôi có thể sử dụng Tìm kiếm đàn hồi hiệu quả hơn để quản lý và cập nhật dữ liệu trong các dự án của mình. Hãy bắt đầu và xem các chức năng này hoạt động như thế nào.
Tất cả các ví dụ dưới đây đều dựa trên ứng dụng khách ES Node .
Cài đặt
Bạn có thể sử dụng gói Tìm kiếm đàn hồi npm trong ứng dụng nodejs của mình.
npm install @elastic/elasticsearch
Cụm ES của chúng tôi được định cấu hình với tính năng bảo mật bị vô hiệu hóa rõ ràng , đó là lý do tại sao chúng tôi có thể kết nối qua HTTP.
import { Client, errors } from '@elastic/elasticsearch';
const client = new Client({
node: 'http://example.com'
});
Tất cả các tài liệu tham khảo khác liên quan đến ES bạn có thể xem tại đây .
Bình
Để kiểm tra máy khách ES được kết nối với cụm http đã xác định, hãy thực hiện hành động ping.
client
.ping({
// ping usually has a 3000ms timeout
requestTimeout: 1000,
})
.then(() => {
this.logger.info('Elasticsearch connected');
})
.catch((err: errors.ConnectionError) => {
this.logger.error('Elasticsearch unavailable', { error: err });
});
async createIndex(indexName: string) {
return this.client.indices.create({
index: indexName,
mappings: {},
settings: {}
});
};
Kiểm tra xem chỉ mục có tồn tại hay không.
async indexExists(indexName: string) {
return this.client.indices.exists({
index: indexName,
});
};
Trước khi thêm bất kỳ tài liệu nào vào chỉ mục, bạn nên cập nhật cài đặt chỉ mục và thêm các bộ phân tích cần thiết dựa trên chức năng tìm kiếm của mình. Dưới đây là một ví dụ về cài đặt chỉ mục:
async indexSetting(indexName: string) {
return this.client.indices.putSettings({
index: indexName,
body: {
settings: {
max_ngram_diff: 19,
analysis: {
filter: {
autocomplete_filter: {
type: 'ngram',
min_gram: '1',
max_gram: '20',
},
},
analyzer: {
autocomplete: {
filter: ['lowercase', 'autocomplete_filter'],
type: 'custom',
tokenizer: 'standard',
},
},
},
number_of_replicas: '1',
},
}
});
};
Thêm ánh xạ
Trước khi thêm bất kỳ tài liệu nào vào chỉ mục, bạn nên cập nhật cài đặt chỉ mục, sau đó cập nhật ánh xạ chỉ mục và gán các thuộc tính của bộ phân tích với các trường. Dưới đây là một ví dụ về ánh xạ chỉ mục:
Trong khi cập nhật cài đặt, chúng tôi đã thêm autocompletebộ phân tích mà chúng tôi có thể xác định trong ánh xạ làm thuộc tính tìm kiếm. Ánh xạ chỉ mục có thể khác nhau đối với các chỉ số khác nhau.
const searchProperty = {
type: 'text',
analyzer: 'autocomplete',
search_analyzer: 'standard',
};
async indexMapping(indexName: string) {
return this.client.indices.putMapping({
index: indexName,
body: {
properties: {
id: { type: 'keyword' },
createdAt: { type: 'date' },
updatedAt: { type: 'date' },
caseCode: searchProperty,
policyNo: searchProperty,
claimRegNo: searchProperty,
vehicleRegNo: searchProperty,
vehicleChassisNo: searchProperty,
claimStatus: { type: 'keyword' },
lossType: { type: 'keyword' },
vehicleType: { type: 'keyword' },
zone: { type: 'keyword' },
insurer: { type: 'keyword' },
caseStatus: { type: 'keyword' },
business: { type: 'keyword' },
},
},
});
};
thêm tài liệu
Có nhiều cách khác nhau để thêm tài liệu vào một chỉ mục:
Tài liệu đơn
async addDocument(indexName: string, payload: DataType) {
return this.client.index({
index: indexName,
type: '_doc',
id: payload.id,
body: payload
});
};
async addBulkDocuments(indexName: data = []) {
const payload = data.map((item) => {
return [
{
index: {
_index: indexName,
_type: '_doc',
_id: item.id,
},
},
item,
]
})
return this.client.bulk({
refresh: true,
body: payload
});
};
async updateDocument(indexName: string, payload: DataType) {
return this.client.update({
index: indexName,
type: '_doc',
id: payload.id,
body: payload
});
};
Cập nhật một tài liệu: Cập nhật tài liệu bằng tập lệnh hoặc một phần tài liệu.
client.update(...)
client.updateByQuery(...)
Xóa một tài liệu
async deleteDocument(indexName: string, id: string) {
return this.client.delete({
index: indexName,
id,
});
};
Xóa một tài liệu: Cập nhật tài liệu bằng tập lệnh hoặc một phần tài liệu.
client.delete(...)
client.deleteByQuery(...)
Máy khách JavaScript Elaticsearch [8.5] | đàn hồi
Tham chiếu API | Máy khách JavaScript Elaticsearch [8.5] | đàn hồi
Ví dụ | Máy khách JavaScript Elaticsearch [8.5] | đàn hồi
Tạo bộ phân tích tùy chỉnh | Hướng dẫn Elaticsearch [8.5] | đàn hồi
Tham khảo máy phân tích tích hợp | Hướng dẫn Elaticsearch [8.5] | đàn hồi
Các kiểu dữ liệu trường | Hướng dẫn Elaticsearch [8.5] | đàn hồi
Tôi hy vọng bạn thích đọc về Tìm kiếm đàn hồi và cách nó có thể được sử dụng để tối ưu hóa tìm kiếm và phân tích trong các ứng dụng khác nhau. Nếu bạn thấy bài viết này hữu ích hoặc có bất kỳ câu hỏi nào khác, vui lòng liên hệ với tôi qua phần bình luận.
Để biết thêm thông tin cập nhật và thông tin chi tiết về các xu hướng công nghệ mới nhất, hãy nhớ theo dõi tôi trên Twitter hoặc LinkedIn . Cảm ơn đã đọc và tôi mong được kết nối với bạn trên phương tiện truyền thông xã hội.
Twitter :https://twitter.com/geekfarmer_
Liên kết :https://www.linkedin.com/in/geekfarmer

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































