当前位置: 首页 > 知识库问答 >
问题:

如何忽略solr查询中的空白

闽念
2023-03-14
<fieldType name="text_filter" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.KeywordTokenizerFactory" />
    <filter class="solr.WordDelimiterFilterFactory"
            catenateWords="1"
            catenateNumbers="1"
            catenateAll="1"
            preserveOriginal="1"
            generateWordParts="1"
            generateNumberParts="1"/>
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.KeywordTokenizerFactory" />
    <filter class="solr.WordDelimiterFilterFactory"
            catenateWords="1"
            catenateNumbers="1"
            catenateAll="1"
            preserveOriginal="1"
            generateWordParts="1"
            generateNumberParts="1"/>
    <filter class="solr.TrimFilterFactory" />
    <filter class="solr.LowerCaseFilterFactory" />
  </analyzer>
</fieldType>

和使用它的字段:

<field name="artist_name_filter"  type="text_filter"  multiValued="false" indexed="true" stored="true" required="false" />

当使用Solr分析工具时,一切看起来都很好。

查询部分如下:

    null
    null

共有1个答案

扈韬
2023-03-14

您的问题不是分析,而是QueryParser语法。空格用于分隔查询子句,这不受分析器的影响。当您有q=audio slave时,它首先应用查询语法规则,并将其分成子句“audio”和“slave”,然后分别分析每个子句。

转义空间应该可以完成这项工作,我认为:q=audio\slave

这里的短语查询似乎应该起作用,比如q=“audio slave”,但它不起作用。它为我生成类似于“(audio slave audio audioslave)slave”的内容,这是有问题的。

 类似资料:
  • 我有Solr 5.3.1,需要查询除某些字段之外的所有字段(我需要在某些字段中搜索而不是以这种方式检索字段[/?q=query&fl=field1,field2,field3]) 2.[以下解决方案有效,但需要更多时间] 3.我在data-config.xml中设置了indexed=“false”,它只忽略此字段中的搜索,但是当我搜索所有字段http://localhost:8983/solr/t

  • 问题内容: 什么是运行查询以便忽略字段中的空格的最佳方法?例如,以下查询: 将找到以下条目: 我正在使用php或python,但我认为这没有关系。 问题答案:

  • 我有一个简单的MySQL数据库,我正在从PHP查询它。我让用户通过表单输入一些约束,然后希望根据约束返回SELECT查询的结果。当两个约束都被使用时,我所做的就是工作。但是,如果用户没有指定其中一个约束,SELECT查询将不返回任何结果,我认为这是因为它将约束变量视为空。 如果SELECT查询不是空的,如何让它使用约束,如果是空的,如何让它忽略约束? 这是我之前试过的,但不起作用。我想我可以测试它

  • 问题内容: 我正在寻找一种创建忽略空格的学说查询的方法。我尝试用replace,但是我一直都收到 预期的已知功能,得到“替换” 我的查询看起来像: 问题答案: 好的,我编写了一个替换DQL函数。 接下来在app / config.yml中,我添加: 最后,我在控制器中创建了一个DQL查询: 最有趣的是,“引号”非常重要。这意味着您可以在select,from,setParameter和orderB

  • 这个问题已经问过了:Spring data-ignore参数,如果它有一个空值和一个创建的票证,datajpa-209。 只要这个问题是近3年前的问题,而且票证可以追溯到2012年,我就想问是否有一种更舒适和通用的方法来避免处理和复制存储库方法的开销。2个这样的参数的解决方案看起来是可以接受的,但是我想实现4-5个参数的非常相同的过滤。

  • 问题内容: HTML / CSS中是否有任何内容可以告诉浏览器完全忽略空格? 如此多次,当您想要将两个图像彼此并排放置时-拼命尝试使HTML可读,但是浏览器在它们之间放置了一个空格。 因此,而不是像这样: 你最终得到这个 真是太恐怖了! 问题答案: 哦,您只需一行CSS就可以轻松实现: 劣势,你问?尚无 浏览器实现此 极其有用的功能(通常考虑内联块)。 我有时会做些什么,尽管黑夜很丑,但还是要使用