Apache Solr 搜索 API 个默认结果过滤器

Apache Solr Search API default result filters

我正在使用 Solr 和 apache nutch 来索引网站

我的 json 结果如下所示:

  "response": {
"numFound": 0,
"start": 0,
"docs": [
  {
    "id": "http://mysite.pl/cl-BR/link/link",
    "url": "http://mysite.pl/cl-BR/link/link",
    "content": [
      "content"
    ],
    "_version_": 0000
  },
  {
    "id": "http://mysite.pl/ru-RU/link/link",
    "url": "http://mysite.pl/ru-RU/link/link",
    "content": [
      "content"
    ],
    "_version_": 0000
  },
  {
    "id": "http://mysite.pl/en-EN/link/link",
    "url": "http://mysite.pl/en-EN/link/link",
    "content": [
      "content"
    ],
    "_version_": 0000
  },

我想将参数添加到我的查询中,包含有关语言的信息,格式如下:en-EN 接下来 return 仅搜索结果 url 包含我的参数。

例如: 我的查询是:/solr/CoreName/select?q=you&fl=id,ul,content&urlContains=en-EN

我的结果是:

  "response": {
"numFound": 0,
"start": 0,
"docs": [
  {
    "id": "http://mysite.pl/en-EN/link/link",
    "url": "http://mysite.pl/en-EN/link/link",
    "content": [
      "content"
    ],
    "_version_": 0000
  },

当我的查询是:/solr/CoreName/select?q=you&fl=id,ul,content&urlContains=ru-RU

我的结果是:

  "response": {
"numFound": 0,
"start": 0,
"docs": [
  {
    "id": "http://mysite.pl/ru-RU/link/link",
    "url": "http://mysite.pl/ru-RU/link/link",
    "content": [
      "content"
    ],
    "_version_": 0000
  },

我该怎么做?

cleanest 实现将 add a custom field in your schema, and then use copyField to copyurlurl_tokenized 字段的内容。

<copyField source="url" dest="url_tokenized" />

通过 using a PatternTokenizer 你可以告诉 Solr 按 / 拆分标记,这样你就可以在 url_tokenized 字段中得到 ru-RU 作为标记:

<analyzer>
    <tokenizer class="solr.PatternTokenizerFactory" pattern="/"/>
</analyzer>

哪个应该给你这样的东西:

<fieldType name="url_tokenized" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.PatternTokenizerFactory" pattern="/"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

通过添加 LowerCaseFilterFactory,我们将确保无论使用何种大小写,都能找到 ru-RU 和 ru-ru。

然后通过对查询字符串应用过滤器查询 (fq) 来完成查询:

...&fq=url_tokenized:ru-ru

这将限制对 URL 中某处包含“/ru-ru/”的文档的响应。