Какие специальные символы поддерживаются в поиске API smartsheet - PullRequest
0 голосов
/ 30 сентября 2019

Прямо сейчас, исходя из моего понимания, поиск по smartsheet ищет что-то похожее на искомый термин.

Допустим, я ищу 'test':

https://api.smartsheet.com/2.0/search?query=test

Он может вернуть:

  • мой отзыв
  • тест
  • я ненавижу картофель
  • пока что обычный тест

Если есть какие-либо специальные символывыполнить более сложный поиск (например, запрос типа SQL)?

  • точное совпадение?
  • начинается с?
  • заканчивается на?

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Я не уверен, что конечная точка /search поддерживает специальные символы так же, как SQL-запрос. Однако поддерживаются оба следующих сценария:

  • Сценарий № 1: найти места, где указанная строка существует как отдельное слово (без учета регистра)

  • Сценарий # 2: найти места, где указанная строка существует либо как отдельное слово ИЛИ как часть другого слова (без учета регистра)

Два приведенных ниже примера демонстрируют каждый из этих сценариев путем поиска листа, который выглядит следующим образом:

enter image description here

Сценарий# 1: найти места, где указанная строка существует как отдельное слово (без учета регистра)

Чтобы найти места, где указанная строка существует как отдельное слово, заключите эту строку (т. Е. Значениепараметр query) в двойных кавычках.

Запрос API: GET https://api.smartsheet.com/2.0/search/sheets/5831916227192708?query="new"

Ответ API: ответ содержит записи только для строки №2 и №3 - потому что слово «new "(как отдельное слово) существует только в этих двух строках.

{
    "results": [
        {
            "text": "New York, NY",
            "objectType": "row",
            "objectId": 5895212085602180,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 2: Meeting #2"
            ]
        },
        {
            "text": "Scranton, new jersey",
            "objectType": "row",
            "objectId": 3643412271916932,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 3: Meeting #3"
            ]
        }
    ],
    "totalCount": 2
}

Сценарий # 2: найти места, где указанная строка существует либо как отдельное слово, либо как часть другого слова (без учета регистра)

Чтобы найти места, гдеуказанная строка существует либо как отдельное слово ИЛИ как часть другого слова. НЕ заключайте эту строку (т. е. значение параметра query) в кавычки.

Запрос API: https://api.smartsheet.com/2.0/search/sheets/5831916227192708?query=new

Ответ API: ответ содержит записи для всех 5 строк - потому что string"new" существует во всех этих строках.

{
    "results": [
        {
            "text": "New York, NY",
            "objectType": "row",
            "objectId": 5895212085602180,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 2: Meeting #2"
            ]
        },
        {
            "text": "Avonew, MS",
            "objectType": "row",
            "objectId": 6198495731836804,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 4: Meeting #4"
            ]
        },
        {
            "text": "Newtown, PA",
            "objectType": "row",
            "objectId": 1391612458231684,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 1: Meeting #1"
            ]
        },
        {
            "text": "Anewston, MI",
            "objectType": "row",
            "objectId": 3946695918151556,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 5: Meeting #5"
            ]
        },
        {
            "text": "Scranton, new jersey",
            "objectType": "row",
            "objectId": 3643412271916932,
            "parentObjectType": "sheet",
            "parentObjectId": 5831916227192708,
            "parentObjectName": "SOTest",
            "contextData": [
                "Row 3: Meeting #3"
            ]
        }
    ],
    "totalCount": 5
}
0 голосов
/ 30 сентября 2019

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

...