Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
brunodgarcia
Contributor II
Contributor II

JSON API: Field.SelectValues() - Slow Performance

Hi!

I need to use an external index to do a selection in a QlikSense App.
The query results is a vector of integer values, the key for the table.

I have tried to use the JSON API but the performance was sluggish. It was even slower than using Qlik's full text search.

It took about FOUR MINUTES to select 1.5K values fom the  4.5M table, using an integer column.

Is there any other way to make this work?

Here is the JSON message I have used:

{
"handle": 2,
"method": "SelectValues",
"params": {
"qFieldValues": [
{
"qText": "",
"qIsNumeric": false,
"qNumber": 0
},

{
"qText": "",
"qIsNumeric": false,
"qNumber": 1
}
],
"qToggleMode": false,
"qSoftLock": false
}
}

 

Thanks!

Labels (1)
1 Solution

Accepted Solutions
brunodgarcia
Contributor II
Contributor II
Author

I got it, LowLevelSelect() = RowNo()-1

Solved!

View solution in original post

3 Replies
Øystein_Kolsrud
Employee
Employee

Have you tried this endpoint?

https://help.qlik.com/en-US/sense-developer/April2019/APIs/EngineAPI/services-GenericObject-SelectLi...

My guess is that you will get a better performance using that one. An example of how to use it can be found here:

https://help.qlik.com/en-US/sense-developer/April2019/Subsystems/EngineAPI/Content/Sense_EngineAPI/D...

But you'll have to convert from your list of keys to the position of those keys in the list object which may be tricky depending on how the keys are organized.

brunodgarcia
Contributor II
Contributor II
Author

Hi,

The mehod Field.LowLevelSelect() was able to do a 1.5k selection  with reasonable performance.

Is there any way for me to get the indexes of the values of a field?

I still don't get why the selectValues would be so slow when the field is numeric.

Thanks!

brunodgarcia
Contributor II
Contributor II
Author

I got it, LowLevelSelect() = RowNo()-1

Solved!