弹性搜索-用于在多个字段上搜索而不给出确切结果的Java API

时间:2018-07-16 13:14:37

标签: java elasticsearch elastic-stack

我使用java api QueryBuilders.multiMatchQuery在多个字段中搜索我的输入关键字,但没有得到确切的结果。它给出了一些随机结果,与我的搜索查询无关。

请在下面找到我的代码。

SearchRequest contentSearchRequest = new SearchRequest(ATTACHMENT); 
SearchSourceBuilder contentSearchSourceBuilder = new SearchSourceBuilder();
contentSearchRequest.types(TYPE);
MultiMatchQueryBuilder attachmentQB = QueryBuilders.multiMatchQuery(keyword, "attachment.content","catalog_keywords","product_keywords");
contentSearchSourceBuilder.query(attachmentQB);
contentSearchSourceBuilder.size(5);

请找到我的地图详细信息:

PUT document_attachment
    {

         "settings": {
         "analysis": {
          "analyzer": {
            "custom_analyzer": {
              "type": "custom",
              "tokenizer": "whitespace",
              "char_filter": [
                "html_strip"
              ],
              "filter": [
                "lowercase",
                "asciifolding"
              ]
            },
            "product_catalog_keywords_analyzer": {
              "type": "custom",
              "tokenizer": "whitespace",
              "char_filter": [
                "html_strip"
              ],
              "filter": [
                "lowercase",
                "asciifolding"
              ]
            }
          }
        }
      },

      "mappings" : {
        "doc" : {
          "properties" : {
            "attachment" : {
              "properties" : {
                "content" : {
                  "type" : "text",
                  "analyzer": "custom_analyzer"
                },
                "content_length" : {
                  "type" : "long"
                },
                "content_type" : {
                  "type" : "text"
                },
                "language" : {
                  "type" : "text"
                }
              }
            },
            "fileContent" : {
              "type" : "text"
            },
            "id": {
            "type": "long"
            },
            "catalog_keywords" : {
            "type" : "text",
            "analyzer": "product_catalog_keywords_analyzer"
            },
            "product_keywords" : {
            "type" : "text",
            "analyzer": "product_catalog_keywords_analyzer"
            },

          }
        }
      }
    }

0 个答案:

没有答案