Synonyms Editor API
Table of Contents
API Objective: Update a synonyms file.
See Synonyms Files for an overview and examples of how to specify a set of synonyms.
Examples
Managing synonym file states
List all available synonyms files along with its READY / NOT_READY statuses
curl '/collections/logs/synonyms'
[ {
"path" : "synonyms.txt",
"state" : "NOT_READY"
} ]
Changing the synonym file’s state to READY opens all the synonyms browsing/editing APIs
`curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt' -d '{"state":"READY"}'`
Check editing READY / NOT_READY status for a single synonym file
curl '/collections/logs/synonyms/synonyms.txt'
{
"path" : "synonyms.txt",
"state" : "READY"
}
Managing synonym file entries
List all entries in a synonyms file
curl '/collections/logs/synonyms/synonyms.txt/items'
{
"count" : 8,
"items" : [ {
"id" : "37488777-a668-49d8-a3fa-bc81a95a8d96",
"mapping" : "aaafoo => aaabar",
"enabled" : true,
"type" : "EXPLICIT"
}
...
}, {
"id" : "d68f2a35-93d3-41a0-8b10-4768bd4619e8",
"mapping" : "MB,mib,megabyte,megabytes",
"enabled" : true,
"type" : "EQUIVALENT"
}
...
Add new entry to a synonyms file
POST will return items with all of its data, including the ID and modified timestamp.
Also note, the type property is read-only and is returned based on ⇒ and not , mapping.
|
curl -XPOST -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt/items' -d '
{
"mapping": "term1, term2",
"category": "cat1",
"enabled": "false"
}'
{
"id" : "01cd53f7-1941-499e-ba5e-fb35ec6bd20c",
"mapping" : "term1, term2",
"category" : "cat1",
"modified" : "2015-11-03T01:30:21.530Z",
"enabled" : false,
"type" : "EQUIVALENT"
}
Update an entry in a synonyms file
curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt/items/01cd53f7-1941-499e-ba5e-fb35ec6bd20c' -d '
{
"mapping": "term1, term2, term3",
"category" : "cat1",
"enabled": "true"
}'
Delete an entry in a synonyms file
curl -XDELETE '/collections/logs/synonyms/synonyms.txt/items/58f94a0e-473d-4719-b87c-d9908c84c89b'
Search, filter, or sort synonyms
Fusion supports Solr query language, so you can use it to refine your search in the following ways:
|
curl '/collections/logs/synonyms/synonyms.txt/items?q=category:cat1'
{
"count" : 1,
"items" : [ {
"id" : "01cd53f7-1941-499e-ba5e-fb35ec6bd20c",
"mapping" : "term1, term2, term3",
"category" : "cat1",
"modified" : "2015-11-03T01:33:58.132Z",
"enabled" : true,
"type" : "EQUIVALENT"
} ]
}
Get term suggestions from synonyms or categories for autocomplete/autosuggest purposes
-
Get suggestions for categories
curl '/collections/logs/synonyms/synonyms.txt/suggestions?field=category&q=ca'
[ "cat1" ]
-
Get suggestions for terms
curl '/collections/logs/synonyms/synonyms.txt/suggestions?field=mapping&q=te'
[ "term1", "term2", "television", "televisions", "term3" ]
-
Get suggestions for both terms and categories
curl '/collections/logs/synonyms/synonyms.txt/suggestions?q=c'
[ "cat1", "cccbar", "cccbaz", "cccfoo" ]
Committing and flushing
Determine whether a commit or flush is required
curl '/collections/logs/synonyms/synonyms.txt'
{
"path" : "synonyms.txt",
"state" : "NOT_SAVED"
}
Flush or commit changes
curl -XPUT -H 'Content-type: application/json' '/collections/logs/synonyms/synonyms.txt' -d '{"state":"READY"}'
Importing and exporting
Export synonyms into a csv file
curl -v -H 'Accept: text/csv' '/collections/test/synonyms/synonyms.txt/items'
...
< HTTP/1.1 200 OK
< Set-Cookie: id=81e42c0c-bb71-43a4-ae79-39a832f2f3ab;HttpOnly;Path=/api
< Content-Type: text/csv
...
id,mapping,category,enabled,modified,user,type
"f52a08c5-6a32-4ff5-8603-2540ef9d7899","aaafoo => aaabar",,true,,,EXPLICIT
"da061429-37a0-439a-8117-2e2691d4de1a","bbbfoo => bbbfoo bbbbar",,true,,,EXPLICIT
"d1260556-eb2d-4fb2-83b0-f124b82a3c88","cccfoo => cccbar cccbaz",,true,,,EXPLICIT
"4c6955d7-1f1c-4b7a-92a2-de46fad310d0","fooaaa,baraaa,bazaaa",,true,,,EQUIVALENT
"a61a74db-41a0-4103-8738-111ae507bfdd","GB,gib,gigabyte,gigabytes",,true,,,EQUIVALENT
"e54f3477-7838-4b09-b048-415e1baeeb30","MB,mib,megabyte,megabytes",,true,,,EQUIVALENT
"ebf9e483-80c5-4bcf-b4f2-f0d59c14ef87","Television, Televisions, TV, TVs",,true,,,EQUIVALENT
"e9e32949-751d-4461-897f-3be04be3575b","pixima => pixma",,true,,,EXPLICIT
Import synonyms from csv file
curl -v '/collections/test/synonyms/synonyms.txt/items' -H 'Content-type: text/csv' -X POST -d 'id,mapping,category,enabled,modified,user,type
"f52a08c5-6a32-4ff5-8603-2540ef9d7899","aaafoo => aaabar",,true,,,EXPLICIT
'
...
> Content-type: text/csv
...
< HTTP/1.1 204 No Content