使用MarkLogic结构化查询无法在基本搜索结果中排除class ThreadSafeList<E> private constructor(private val data: MutableList<E>): MutableList<E> by data
{
// default constructor, when no elements are passed
constructor(): this(mutableListOf())
companion object {
// constructor for a list to use its elements for the purpose
operator fun <E> invoke(elements: List<E>): ThreadSafeList<E>
{
return ThreadSafeList(elements.toMutableList())
}
}
}
fun main()
{
// this is how you call it
val list = listOf("Hello", "World", "!")
val threadSafeList = threadSafeListOf(list)
}
条件。
示例-考虑数据库中的这两个文档。
test1.json
sectionName = "PI"
test2.json
{
"id" : "101",
"sectionName" : "PI",
"name" : "Myself",
"emailId" : "aaa@gmail.com"
}
以下是我尝试的示例代码:
{
"id" : "101",
"sectionName" : "GD",
"name" : "Prof",
"emailId" : "aaa@gmail.com"
}
Resulset仍显示包含sectionName =“ PI”的文档,即不排除test1.json。
在此建议。
添加search_Document_test xml。
"not-query":{
"value-query":{
"json-property":"sectionName",
"text":["PI"],
"term-option":["exact"]
}
}
答案 0 :(得分:1)
您没有提到要使用哪个API来执行搜索,但是可能的问题是您的搜索未经过过滤运行。未过滤的速度更快,但会产生误报。
您可以了解有关过滤搜索和未过滤搜索here和here的更多信息。
如果您使用Search API(search:search)或REST Client API,则可以控制是否通过查询选项过滤搜索。
如果您使用的是JSearch API,则各种查询对象上都有一个过滤器方法。例如,DocumentsSearch.filter。