add elastic lucence query support

This commit is contained in:
rick 2025-04-10 10:58:30 +00:00
parent 5f1ed08d33
commit 16eb4cb8ec
3 changed files with 29 additions and 25 deletions

View File

@ -34,8 +34,17 @@ watch(store, (s) => {
return return
} }
}) })
switch (kind.value) {
case 'atest-store-elasticsearch':
case 'atest-store-etcd':
sqlQuery.value = '*'
break
default:
queryDataMeta.value.currentDatabase = '' queryDataMeta.value.currentDatabase = ''
sqlQuery.value = '' sqlQuery.value = ''
}
executeQuery() executeQuery()
}) })
@ -63,13 +72,22 @@ const describeTable = (data: QueryData) => {
case 'atest-store-cassandra': case 'atest-store-cassandra':
sqlQuery.value = `@describeTable_${queryDataMeta.value.currentDatabase}:${data.label}` sqlQuery.value = `@describeTable_${queryDataMeta.value.currentDatabase}:${data.label}`
break break
break
default: default:
sqlQuery.value = `@describeTable_${data.label}` sqlQuery.value = `@describeTable_${data.label}`
} }
executeQuery() executeQuery()
} }
const queryTables = () => { const queryTables = () => {
switch (kind.value) {
case 'atest-store-elasticsearch':
if (sqlQuery.value === '') {
sqlQuery.value = '*'
}
break
default:
sqlQuery.value = `` sqlQuery.value = ``
}
executeQuery() executeQuery()
} }
watch(kind, (k) => { watch(kind, (k) => {
@ -84,6 +102,9 @@ watch(kind, (k) => {
case 'atest-store-redis': case 'atest-store-redis':
queryTip.value = 'Enter key' queryTip.value = 'Enter key'
break; break;
case 'atest-store-elasticsearch':
queryTip.value = 'field:value OR field:other'
break;
} }
}) })
@ -153,12 +174,6 @@ const executeQuery = async () => {
return executeWithQuery(sqlQuery.value) return executeWithQuery(sqlQuery.value)
} }
const executeWithQuery = async (sql: string) => { const executeWithQuery = async (sql: string) => {
switch (kind.value) {
case 'atest-store-etcd':
sqlQuery.value = '*'
break;
}
let success = false let success = false
try { try {
const data = await API.DataQueryAsync(store.value, kind.value, queryDataMeta.value.currentDatabase, sql); const data = await API.DataQueryAsync(store.value, kind.value, queryDataMeta.value.currentDatabase, sql);
@ -197,7 +212,7 @@ const executeWithQuery = async (sql: string) => {
<template> <template>
<div> <div>
<el-container style="height: calc(100vh - 50px);"> <el-container style="height: calc(100vh - 50px);">
<el-aside v-if="kind === 'atest-store-orm' || kind === 'atest-store-iotdb' || kind === 'atest-store-cassandra'"> <el-aside v-if="kind === 'atest-store-orm' || kind === 'atest-store-iotdb' || kind === 'atest-store-cassandra' || kind === 'atest-store-elasticsearch'">
<el-scrollbar> <el-scrollbar>
<el-select v-model="queryDataMeta.currentDatabase" placeholder="Select database" <el-select v-model="queryDataMeta.currentDatabase" placeholder="Select database"
@change="queryTables" filterable> @change="queryTables" filterable>

View File

@ -785,21 +785,10 @@ interface QueryObject {
key: string key: string
} }
var DataQueryAsync = (store: string, kind: string, currentDatabase: string, query: string) => { var DataQueryAsync = (store: string, kind: string, currentDatabase: string, query: string) => {
const queryObj = {} as QueryObject; const queryObj = {
switch (kind) { 'key': currentDatabase,
case 'atest-store-orm': 'sql': query,
case 'atest-store-cassandra': } as QueryObject;
case 'atest-store-iotdb':
queryObj['sql'] = query;
queryObj['key'] = currentDatabase;
break;
case 'atest-store-etcd':
case 'atest-store-redis':
case 'atest-store-elasticsearch':
queryObj['key'] = query;
queryObj['sql'] = query;
break;
}
const requestOptions = { const requestOptions = {
method: 'POST', method: 'POST',
headers: { headers: {