elasticsearch打分插件-创新互联

插件常用命令

创新互联从2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元滑县做网站,已为上家服务,为滑县各地企业和个人服务,联系电话:028-86922220

./plugin list/remove/install

plugin.xml 代码



    plugin
    
        zip
    
    false
    
        
            ${project.basedir}/src/main/resources/plugin-descriptor.properties
            elasticsearch
            true
        
    
    
        
            elasticsearch
            true
            true
        
    

plugin-descriptor.properties 代码

description=my native script that does something great
version=1.0
name=my-native-scrip
classname=com.*.score.plugin.MyNativeScriptPlugin
java.version=1.8
elasticsearch.version=*
jvm=true

pom.xml 代码


  4.0.0
  com.*.es
  score-plugins
  1.0.0-SNAPSHOT
  score-plugins
  
  
  http://maven.apache.org
  
  
 
    
  
             
                org.elasticsearch
                elasticsearch
                *
                provided
            
  
  
  
  
        
        
      
          org.apache.maven.plugins
          maven-assembly-plugin
          2.6
          
              false
              ${project.build.directory}/releases/
              
                  ${basedir}/src/main/assemblies/plugin.xml
              
          
          
              
                  package
                  
                      single
                  
              
          
      
      
      
    org.apache.maven.plugins
    maven-compiler-plugin
    3.5.1
    
        1.8
        1.8
    

      
      
  
        
       
         
            src/main/resources
            false
            
                *.properties
            
        
      
    
 

只有一个java 类 MyNativeScriptPlugin

public class MyNativeScriptPlugin extends Plugin {
    
    private static final ESLogger logger = Loggers.getLogger(MyNativeScriptPlugin.class);
    
    @Override
    public String name() {
        return "my-native-scrip";//native-script为插件的名称
    }
 
    @Override
    public String description() {
        return "new score rule";
    }
 
    public void onModule(ScriptModule module) {
        module.registerScript("my_script", MyNativeScriptFactory.class);
    }
    
    
    
    public static class MyNativeScriptFactory implements NativeScriptFactory {
        @Override
        public ExecutableScript newScript(@Nullable Map params) {
            return new MyNativeScript();
        }
        @Override
        public boolean needsScores() {
            return true;
        }
    }

    public static class MyNativeScript extends AbstractDoubleSearchScript {
        @Override
        public double runAsDouble() {
            try {
               //你的逻辑
                
            } catch (IOException e) {
                logger.error("",e);
            }
            
            return 0;
        }

    }
 
}

执行打包命令

mvn clean install

执行安装命令

/*/bin/plugin install file:///root/score-plugins-1.0.0-SNAPSHOT.zip

需要所有机器都安装 否则报错 需要重启ES


执行查询命令

"script_score" : {
            "script" : { 
               "lang": "native",
               "inline":"my_script"  
             }
        }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:elasticsearch打分插件-创新互联
文章源于:http://hbruida.cn/article/cdsooj.html