0

我试图在我的 Windows 7 操作系统 PC 上设置弹性搜索。安装了elasticsearch和curl,它loacahost:9200工作正常。

现在我正在努力搜索位于c:\user\rajesh\raj.txt.

我的疑问是,在哪里提到我必须在这个文件中搜索?弹性搜索.yml?我需要设置哪个参数来指向这个文本文件?

索引正在使用curl但映射给出空指针异常?我需要安装其他东西吗?

我试图为 chrome 安装 sense 插件,但说移动到 marvel,并且从那里无法安装 marvel!

4

3 回答 3

3

据我所知,您已经安装了 Elasticsearch,并且现在希望能够在本地文件系统上的文件中进行搜索。这不是 ES 的工作方式。您需要为索引创建映射,然后使用要搜索的内容填充该索引。如果您要在本地文件系统上索引文件,而不是从数据库中提取的数据,您应该查看用于 Elasticsearch 的文件系统 River 插件,http: //www.pilato.fr/fsriver/ 。一旦您正确设置它,它就会自动处理基于文件系统的文档的所有索引。

编辑:

我还看到您正在尝试设置 Kibana 和 Marvel/Sense。要设置 Kibana,只需按照此处的说明进行操作:http ://www.elasticsearch.org/overview/kibana/installation/

要设置 Marvel open powershell,CD 到 C:\elasticsearch\bin 然后运行,plugin.bat -i elasticsearch/marvel/latest然后您需要重新启动集群。一旦你这样做了,如果你去http://localhost:9200/_plugin/marvel/你会看到你的奇迹仪表板。您还将看到一个“Sense”选项卡,这是您提到的另一个插件。

于 2014-03-28T08:47:16.817 回答
1

如果您使用弹性搜索从任何数据库(如 PostgreSQL)中检索数据,请转到文件夹 bin/rivers.bat 并编辑为

curl -XPUT localhost:9200/_river/actor_jdbc_river/_meta -d "{\"type\":\"jdbc\",\"jdbc\":{\"strategy\":\"simple\",\"poll\":\"1h\",\"driver\":\"org.postgresql.Driver\",\"url\":\"jdbc:postgresql://10.5.2.132:5432/prodDB\",\"user\":\"UserName\",\"password\":\"Password\",\"sql\":\"select t.id as _id,t.name from topic as t \",\"digesting\" : true},\"index\":{\"index\":\"jdbc\",\"type\":\"actor_jdbc_river1\"}}"

然后在 Java 端创建一个客户端来访问 River 中的数据。 这里的集群名称与文件夹 config/elasticsearch.yml (testDBsearch) 中提到的相同

private static Client createClient() {
        //Create Client
        Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "testDBsearch").build();
        TransportClient transportClient = new TransportClient(settings);
        transportClient = transportClient.addTransportAddress(new InetSocketTransportAddress("10.5.2.132", 9300));
        return (Client) transportClient;

    }

public static void main(String[] args) {

            Client client = createClient();             
            String queryString = "python";
            search(client, 100, queryString);
        }

    public static  void search(Client client,int size, String queryString) {            
        queryString=queryString +"*";

        try{
            SearchResponse responseActor;
            responseActor = client.prepareSearch("jdbc").setTypes("actor_jdbc_river1").setSearchType(SearchType.DEFAULT)
                    .setQuery(QueryBuilders.queryString(queryString)
                            .field("designation",new Float(2.0)).field("name", new Float(5.0)).field("email")                                                   .defaultOperator(Operator.OR)).setFrom(0).setSize(size).setExplain(true).execute().actionGet();


        for(SearchHit hit:responseActor.getHits()) {                
            System.out.println(hit.getSourceAsString());
            System.out.println(hit.getScore());
            System.out.println("---------------------------");
        }

        }catch(Exception e){
            System.out.println("Error in elastic search "+queryString+"  Error :"+e);
        }

    }
于 2014-04-01T04:37:48.877 回答
0

在windows中明确安装elasticsearch:

1) 检查你的系统是否有最新的java版本

2)从“download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.3/elasticsearch-2.3.3.zip”下载并提取elasticsearch

3) 设置 JAVA_HOME 环境变量“C:\Program Files (x86)\Java\jdk1.8.0_91”

4)使用下图elasticsearch的bin目录下的命令“service”检查JAVA_HOME环境变量检查JAVA_HOME是否设置正确

5) 使用命令 service.bat install 安装 service.bat

6)取消注释network.host并在elasticsearch的配置文件中将值作为localhost

        network.host= localhost in elasticsearch.yml (config file)

7) 运行弹性搜索“C:\elasticsearch-2.3.3\bin\elasticsearch”

如果您在运行弹性搜索时遇到错误,说将 JVM 更新到最新版本意味着您系统中的 java 不包含最新版本(安装并运行最新的 java 版本)

8)安装elasticsearch-head插件来可视化elasticsearch中的东西

运行命令“插件安装弹性搜索头”

如果它无法安装 elasticsearch-head 然后使用命令-

插件安装“github.com/mobz/elasticsearch-head/archive/master.zip”

9)使用链接“localhost:9200/_plugin/head/”在浏览器中打开elasticsearch

弹性搜索可视化界面

于 2016-07-05T12:39:52.510 回答