在xquery中使用标记化和匹配进行多关键字搜索

淫荡的

我之前提出这个问题的尝试显然太复杂了,请再试一次!我正在Xquery中进行搜索。在一个字段(标题)中,应该可以输入多个关键字。目前,只有一个关键字有效。当存在多个错误时,将显示错误ERROR XPTY0004:参数1的实际基数与函数签名中声明的基数不匹配:concat($ atomizable-values as xs:anyAtomicType ?, ...)xs:string? 。预期基数:零或一,得到2。

在我的xquery中,我尝试通过\ s标记关键字,然后分别进行匹配。我认为此方法可能是错误的,但我不确定要使用其他什么方法。我显然是一个初学者!!

这是要搜索的示例XML:

<files>

<file>
<identifier>
    <institution>name1</institution>
    <idno>signature</idno>
</identifier>
<title>Math is fun</title>
</file>

<file>
<identifier>
    <institution>name1</institution>
    <idno>signature1</idno>
</identifier>
<title>philosophy of math</title>
</file>

<file>
<identifier>
    <institution>name2</institution>
    <idno>signature2</idno>
</identifier>
<title>i like cupcakes</title>
</file>

</files>

这是Xquery,其中搜索字段标题的示例输入为“ math”,搜索字段机构的示例输入为“ name1”。这项工作有效,搜索输出为标题“数学很有趣”和“数学哲学”。如果将输入($ title)更改为“数学乐趣”,那是行不通的。然后,您会收到错误消息。所需的输出是标题“数学很有趣”。

xquery version "3.0";

let $institution := 'name1'
let $title := 'math' (:change to 'math fun' and doesn't work anymore, only a single word works:)


let $title-predicate := 
if ($title)
 then
    if (contains($title, '"'))
    then concat("[contains(lower-case(title), '", replace($title, '["]', ''), "')]")  (:This works fine:)
    else
    for $title2 in tokenize($title, '\s') (:HERE IS THE PROBLEM, this only works when the input is a single word, for instance 'math' not 'math fun':)
    return
    concat("[matches(lower-case(title), '", $title2, "')]")
else ()


let $institution-predicate := if ($institution) then concat('[lower-case(string-join(identifier/institution))', " = '", $institution, "']") else ()


let $eval-string := concat
("doc('/db/Unbenannt.xml')//file", 
$institution-predicate,
$title-predicate
)


let $records := util:eval($eval-string) 
let $test := count($records)
let $content :=

                        <inner_container>
                            <div>
                                <h2>Search Results</h2>

                              <ul>
                               {
                              for $record in $records
                              return
                                <li id="searchList">  
                                <span>{$record//institution/text()}</span> <br/>
                                <span>{$record//title/text()}</span>
                                </li>
                                }
                              </ul>
                            </div>
                            </inner_container>

return 
$content
杜蒙

您必须使用string-join()包装FLWOR表达式:

string-join(
    for $title2 in tokenize($title, '\s')
    return
    concat("[matches(lower-case(title), '", $title2, "')]")
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多关键字搜索

来自分类Dev

使用MultiMatchQueryBuilder进行“和”关键字查询搜索

来自分类Dev

SSRS多关键字搜索

来自分类Dev

在Vim中使用先前定义的关键字进行搜索

来自分类Dev

在Vim中使用先前定义的关键字进行搜索

来自分类Dev

如何对在 Django 中使用关键字搜索后显示的对象结果进行排序

来自分类Dev

如何使用Mysql搜索关键字并获取匹配词?

来自分类Dev

如何在PHP和MySQL中使用关键字正确搜索

来自分类Dev

使用完整和部分字符串进行 SQL 关键字搜索

来自分类Dev

在Elasticsearch中使用regexp搜索关键字

来自分类Dev

在Cakephp中使用foreach搜索多个关键字

来自分类Dev

如何在 Swift 中使用关键字过滤搜索

来自分类Dev

使用多个关键字进行Hibernate Search的索引搜索

来自分类Dev

在 jQuery 中使用 contains() 匹配多个关键字

来自分类Dev

使用glob()和关键字搜索文件

来自分类Dev

使用 twitter api 和 spark 搜索特定关键字

来自分类Dev

使用PHP在关键字数组/字符串中进行关键字匹配

来自分类Dev

使用PHP在关键字数组/字符串中进行关键字匹配

来自分类Dev

如何使用OR和AND关键字使用php和mysql在存储过程中进行搜索查询?

来自分类Dev

LINQ多关键字搜索到PagedList

来自分类Dev

R统计中的多关键字搜索

来自分类Dev

使用EntityFramework搜索关键字

来自分类Dev

使用关键字搜索HTML TD

来自分类Dev

使用FOSElasticaBundle多次搜索关键字

来自分类Dev

我正在使用批处理文件来搜索完全匹配的函数列表,想知道是否可以进行关键字搜索

来自分类Dev

如何在Swift中使用保留关键字作为类型名称声明和初始化嵌套枚举?

来自分类Dev

通过在Java中使用“ this”关键字来解释“ this”关键字的功能和实例变量隐藏的概念

来自分类Dev

在DLL中使用默认关键字

来自分类Dev

javascript中使用IIFE的“ this”关键字

Related 相关文章

  1. 1

    多关键字搜索

  2. 2

    使用MultiMatchQueryBuilder进行“和”关键字查询搜索

  3. 3

    SSRS多关键字搜索

  4. 4

    在Vim中使用先前定义的关键字进行搜索

  5. 5

    在Vim中使用先前定义的关键字进行搜索

  6. 6

    如何对在 Django 中使用关键字搜索后显示的对象结果进行排序

  7. 7

    如何使用Mysql搜索关键字并获取匹配词?

  8. 8

    如何在PHP和MySQL中使用关键字正确搜索

  9. 9

    使用完整和部分字符串进行 SQL 关键字搜索

  10. 10

    在Elasticsearch中使用regexp搜索关键字

  11. 11

    在Cakephp中使用foreach搜索多个关键字

  12. 12

    如何在 Swift 中使用关键字过滤搜索

  13. 13

    使用多个关键字进行Hibernate Search的索引搜索

  14. 14

    在 jQuery 中使用 contains() 匹配多个关键字

  15. 15

    使用glob()和关键字搜索文件

  16. 16

    使用 twitter api 和 spark 搜索特定关键字

  17. 17

    使用PHP在关键字数组/字符串中进行关键字匹配

  18. 18

    使用PHP在关键字数组/字符串中进行关键字匹配

  19. 19

    如何使用OR和AND关键字使用php和mysql在存储过程中进行搜索查询?

  20. 20

    LINQ多关键字搜索到PagedList

  21. 21

    R统计中的多关键字搜索

  22. 22

    使用EntityFramework搜索关键字

  23. 23

    使用关键字搜索HTML TD

  24. 24

    使用FOSElasticaBundle多次搜索关键字

  25. 25

    我正在使用批处理文件来搜索完全匹配的函数列表,想知道是否可以进行关键字搜索

  26. 26

    如何在Swift中使用保留关键字作为类型名称声明和初始化嵌套枚举?

  27. 27

    通过在Java中使用“ this”关键字来解释“ this”关键字的功能和实例变量隐藏的概念

  28. 28

    在DLL中使用默认关键字

  29. 29

    javascript中使用IIFE的“ this”关键字

热门标签

归档