⚠️ This client is deprecated⚠️ As of Enterprise Search version 8.2.0, we are directing users to the new Enterprise Search Node Client and deprecating this client.
Our development effort on this project will be limited to bug fixes. All future enhancements will be focused on the Enterprise Search Node Client.
Thank you! - Elastic
A first-party Node.js client for Elastic Workplace Search.
With npm:
npm install @elastic/workplace-search-node
or clone locally:
git clone [email protected]:elastic/workplace-search-node.git
cd workplace-search-node
npm install
Create a new instance of the Elastic Workplace Search Client with your access token:
const WorkplaceSearchClient = require('@elastic/workplace-search-node')
const accessToken = '' // your access token
const client = new WorkplaceSearchClient(accessToken)
const client = new WorkplaceSearchClient(
accessToken,
'https://your-server.example.com/api/ws/v1'
)
This example shows how to use the indexDocuments method:
const contentSourceKey = '' // your content source key
const documents = [
{
id: 1234,
title: '5 Tips On Finding A Mentor',
body:
'The difference between a budding entrepreneur who merely shows promise and one who is already enjoying some success often comes down to mentoring.',
url: 'https://www.shopify.com/content/5-tips-on-finding-a-mentor'
},
{
id: 1235,
title: 'How to Profit from Your Passions',
body:
'Want to know the secret to starting a successful business? Find a void and fill it.',
url: 'https://www.shopify.com/content/how-to-profit-from-your-passions'
}
]
client
.indexDocuments(contentSourceKey, documents)
.then(results => {
// handle results
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const documentIds = [1234, 1235]
client
.destroyDocuments(contentSourceKey, documentIds)
.then(destroyDocumentsResults => {
// handle destroy documents results
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const pageParams = { currentPage: 2, pageSize: 20 } // optional argument
client
.listAllPermissions(contentSourceKey, pageParams)
.then(response => {
// handle response
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const user = 'enterprise_search' // username
client
.getUserPermissions(contentSourceKey, user)
.then(response => {
// handle response
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const user = 'enterprise_search' // username
const permissions = { permissions: ['permission1', 'permission2'] } // permissions to assign to the user
client
.updateUserPermissions(contentSourceKey, user, permissions)
.then(response => {
// handle response
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const user = 'enterprise_search' // username
const permissions = { permissions: ['permission2'] } // permissions to add to the user
client
.addUserPermissions(contentSourceKey, user, permissions)
.then(response => {
// handle response
})
.catch(error => {
// handle error
})
const contentSourceKey = '' // your content source key
const user = 'enterprise_search' // username
const permissions = { permissions: ['permission2'] } //permissions to remove from the user
client
.removeUserPermissions(contentSourceKey, user, permissions)
.then(response => {
// handle response
})
.catch(error => {
// handle error
})
Run tests via npm:
$ npm test
If something is not working as expected, please open an issue.
We welcome contributors to the project. Before you begin, a couple notes...
- Before opening a pull request, please create an issue to discuss the scope of your proposal.
- Please write simple code and concise documentation, when appropriate.
Thank you to all the contributors!