gpt4 book ai didi

elasticsearch - 从经典的ASP调用elasticsearch可以进行简单的搜索,但是无法使复杂的搜索起作用

转载 作者:行者123 更新时间:2023-12-03 01:41:24 24 4
gpt4 key购买 nike

如果使用以下代码结构向Elastic发送一个简单查询,则在响应中,我将获得预期的结果:

webaddress = "http://localhost:9200/" + index + "/_search?q='hello world'"

set xml = server.Createobject("MSXML2.ServerXMLHTTP")

xml.Open "GET", webaddress ,False

xml.setRequestHeader "Authorization", "Basic " & Base64Encode("elastic:elastic123")

xml.Send

现在,如果我想发送一个更复杂的查询,以至于如上所述将查询放在单个“q”参数上是不实际的,甚至不可能。即

查询:
get myindex/_search
{
"query":{"match": {"headline": "overseas territory"},
"match" : {"bodytext": "british territory"}
}
}

因此,我会将其构建为一个变量。让我们称之为mySearch

然后我的网址变成:
webaddress = "http://localhost:9200/" + index + "/_search"

和xml.send变成:
xml.Send mySearch

mySearch被忽略,我从变量webaddress收到默认的前10条记录。

上面的搜索词以以下方式在脚本中构建:
Function TermBuilder(query)

dim queryArray
dim termString

queryArray = split(query," ")

termString = "{ ""query"" :{"

For i = LBound(queryArray) to UBound(queryArray)
termString = termString + """match"": {""headline"": """ + queryArray(i) + """ } ,""match"": { ""bodytext"": """ + queryArray(i) + """},"

next
termString = mid(termString, 1, len(termString) - 1) 'remove trailing comma

termString = termString + "}}"

TermBuilder = termString

End Function

我应该如何通过我的复杂搜索以便被识别。我没有卷发的奢华

最佳答案

好的,我有几个问题,首先是我在创建索引时需要使用“POST”而不是“GET”,我使用CamelCase表示法创建了属性,但是在索引的_source属性中它们都是小写。删除索引并使用小写字母创建属性并为索引重新索引之后,我现在可以获得所需的记录。

关于elasticsearch - 从经典的ASP调用elasticsearch可以进行简单的搜索,但是无法使复杂的搜索起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47226879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com