Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用带点(.)的单词搜索solr_Solr_Lucene_Solrj - Fatal编程技术网

用带点(.)的单词搜索solr

用带点(.)的单词搜索solr,solr,lucene,solrj,Solr,Lucene,Solrj,以a结尾的单词。你在solr上给我出了问题。 当我搜索查询l.l.* 我得到的结果是l.l.p、l.l.a等。 但是我没有得到结果l.l. 我已将分析器设置为如下所示 <field name="C" type="text_general" multiValued="false" indexed="true" stored="true"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFac

以a结尾的单词。你在solr上给我出了问题。 当我搜索查询
l.l.*
我得到的结果是
l.l.p、l.l.a等。
但是我没有得到结果
l.l.

我已将分析器设置为如下所示

   <field name="C" type="text_general" multiValued="false" indexed="true" stored="true">
   <analyzer>
   <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
   </field>


我希望每个单词都以像l.l.这样的单词开头,并且还应该显示精确匹配。

您的问题中不清楚您使用的是什么查询解析器,我假设是eDiscoveryMax

因此,查询解析器中使用的星号
*
匹配一个或多个字符

如果您还希望匹配
1.1。
您应该添加
子句:

("1.1." OR 1.1.*)
在SolrJ中,您可以将其翻译为:

solrQuery.setQuery("(\"1.1.\" OR 1.1.*)");
solrQuery.setQuery("field:/1\\.1\\..*/");
另一种方法是直接在Solr查询中添加正则表达式

在您的情况下,是这样的:

field:/1\.1\..*/
在SolrJ中,您可以将其翻译为:

solrQuery.setQuery("(\"1.1.\" OR 1.1.*)");
solrQuery.setQuery("field:/1\\.1\\..*/");
Solr4.0增加了正则表达式支持,这意味着“/”现在是一个特殊字符,如果搜索文本正斜杠,则必须转义


看一看和

您在查询中使用的查询解析器是什么?我正在使用solrj进行查询freedevI我刚刚添加了solrj版本的Anks freedev。最后。如果我像l.l\*一样传递我的查询,现在会产生问题。它工作正常。可能会有不同的解释。我不知道你上次问的是什么。是
setQuery(“1.1\\.*)