gpt4 book ai didi

regex - 如何在Solr 4中使用正则表达式进行查询

转载 作者:行者123 更新时间:2023-12-03 16:55:26 26 4
gpt4 key购买 nike

我已经到了绝望的地步,所以我要寻求帮助。我正在尝试使用正则表达式从Solr 4引擎查询结果。

假设我要查询的文档是:

<str name="text">description: best company; name: roca mola</str>

我想使用此正则表达式查询:
description:(.*)?company(.*)?;

我在 forums中读到,在Solr 4中使用正则表达式就像添加斜杠一样容易,例如:
localhost:8080/solr/q=text:/description\:(.*)?company(.*)?;/

但它不起作用。而且这个也不起作用:
localhost:8080/solr/q=text:/description(.*)?company(.*)?;/

我不想像这样的简单查询:
localhost:8080/solr/q=text:*company*

由于那样会导致文档不匹配,例如:
<str name="text">description: my home; name: mother company"</str>

如果我不清楚,请告诉我。

来自智利的欢呼声:D

注意:我在方案中使用了 text_general字段。正如@arun指出的那样, string字段可以处理我正在使用的正则表达式类型。

最佳答案

由于您的正则表达式跨越多个单词,因此,请不要尝试对text字段类型进行正则表达式搜索,而应尝试对string字段类型进行搜索。 (如果您的正则表达式需要匹配一个单词,则可以使用text字段。)

也可以使用特殊字符percent encoding来确保它们不是导致不匹配的原因。

q=strfield:/description%3A(.*?)company(.*?)%3B.*/

更新:
刚刚在字符串字段上尝试过。以上正则表达式的作品。即使没有百分比编码,它也可以工作,即
q=strfield:/description:.*?company.*?;.*/

关于regex - 如何在Solr 4中使用正则表达式进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882188/

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