- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 SOLR 5.2 构建应用程序,我需要这种类型的匹配:
如果我存储了字段名称:“bla1 bla2”和名称:“bla2 some bla3”当我查询诸如名称之类的内容时:“某事bla1 bla2某事bla3 bla4”我需要它来匹配两个术语。
所以我最终做的是定义这种类型的字段:
我使用关键字分词器进行索引。
我使用空白分词器和Shingle过滤器进行查询,所以我得到类似这样的“bla tra kla zla cla”输出“bla tra”,“bla tra kla”,“bla tra kla zla”......
我尝试过分析,并且 shingling 工作正常,但问题是当我使用真实数据执行查询时,它似乎找不到匹配项。
<fieldType name="shingleparse" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigrams="false" outputUnigramsIfNoShingles="true" minShingleSize="2" maxShingleSize="5"/>
</analyzer>
</fieldType>
<field name="name" type="shingleparse" indexed="true" stored="true" required="true" multiValued="false" />
最佳答案
您可以检查一下这是否符合您的要求。
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
关于java - SOLR 匹配短语(SHINGLE FILTER),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534306/
我正在尝试使用 Solr 在用户搜索 (例如,“blue skinny jeans”中的“skinny jeans”)中找到完全匹配的类别。我正在使用以下类型定义:
我有一个与 shingleAnalyzer 相关的问题,我想创建搜索词的 shingles,同时将它们提供给 lucene 进行搜索 String term = "new york"; String[
我有以下文件: 南非 北非 我想从以下位置检索我的“南非”文档: 非洲 (a) 南非 (b) 非洲 (c) 我定义了以下过滤器和分析器: POST test_index { "settings":
我目前正在使用 lucene 索引网页。目的是能够快速提取哪个页面包含某个表达式(通常是 1、2 或 3 个词),以及页面中还包含哪些其他词(或其中的 1 到 3 个词组)。这将用于构建/丰富/更改词
实现类似 Google 的自动完成的方法之一是在 Solr 1.4 中结合 shingles 和 termvector 组件。 首先,我们使用 shingles 组件生成所有 n-gram 分布,然后
我正在使用 SOLR 5.2 构建应用程序,我需要这种类型的匹配: 如果我存储了字段名称:“bla1 bla2”和名称:“bla2 some bla3”当我查询诸如名称之类的内容时:“某事bla1 b
我需要实现w-shingling (Java 中)比较两个 html 文档的相似性。问题是如何收集和储存木瓦。我们假设 (a,rose,is,a,rose,is,a,rose) 是这些文档之一。我想我
我们有一个符合 OData 的 API,可以将部分全文搜索需求委托(delegate)给 Elasticsearch 集群。 由于 OData 表达式可能变得非常复杂,因此我们决定将它们简单地转换为等
我在 Django 应用程序中使用 Elasticsearch 进行全文搜索。我正在使用 pypi 中的 elastic_dsl 库与集群交互。我正在尝试在分析器中实现瓦状过滤器。我相信我已经让它使用
如何称呼 Python DSL 中的带状疱疹? 这是一个简单的示例,在“姓名”字段中搜索一个短语,在“姓氏”字段中搜索另一个短语。 import json from elasticsearch imp
我将 lucene 4.4 版与这些分析器一起使用: worddelimeter, patternFilter, synonyms, lowercase, stopwords, kStemFilter
在我正在构建的索引中,我对运行查询感兴趣,然后(使用构面)返回该查询的带状疱疹。这是我在文本上使用的分析器: { "settings": { "analysis": { "an
我是一名优秀的程序员,十分优秀!