Spring-Data-Elasticsearch settings: Spring can't find config file?

后端 未结 2 687
别那么骄傲
别那么骄傲 2020-12-10 18:14

With Spring-Data-Elasticsearch, I am trying to use analyzers and mappings defined in elasticsearch_config.json.
This JSON file is in /src/main/resources

相关标签:
2条回答
  • 2020-12-10 19:02

    Finally found out why it was not working!!

    Like Val said, I decomposed my elasticsearch_config.json file into settings.json and mappings.json.

    My project/src/main/ressources architecture:

    - mappings
        + mappings.json
    - settings
        + settings.json
    

    And

    @Document(indexName = "test", type="SentimentTweet")
    @Setting(settingPath = "/settings/settings.json")
    @Mapping(mappingPath = "/mappings/mappings.json")
    

    However, in mappings.json, I should omit the field mappings and DIRECTLY put the content of the mapping.

    INSTEAD OF:

    {
        "mappings": {
            "Tweet": {
                 /* MAPPINGS CONFIGURATION ARE OMITTED */
             }
        }
    }
    

    Only writes in mappings.json:

    {
        "Tweet": {
             /* MAPPINGS CONFIGURATION ARE OMITTED */
         }
    }
    

    The same should be done for settings.json

    0 讨论(0)
  • 2020-12-10 19:09

    The @Setting annotation should point to a file containing only the settings part. If you also want to specify your custom mapping, you need to use the @Mapping annotation and give it the path to your mapping file. It goes like this:

    @Document(indexName = "test", type="Tweet")
    @Setting(settingPath = "/settings/settings.json")
    @Mapping(mappingPath = "/mappings/mappings.json")
    public class Tweet {   
    
        @Id
        private String idStr;
    
        /** other fields, getters and setters are omitted **/
    
    }
    

    Then you need to store settings.json in myproject/src/main/resources/settings/ and mappings.json in myproject/src/main/resources/mappings/.

    That should work.

    0 讨论(0)
提交回复
热议问题