Почему ElasticSearch не находит мой термин - PullRequest
5 голосов
/ 13 февраля 2011

Я только что установил и тестирую эластичный поиск, он выглядит великолепно, и мне нужно кое-что знать, у меня есть файл конфигурации

elasticsearch.json в config каталоге

{    
"network" : {
    "host" : "127.0.0.1"
},
"index" : {
    "number_of_shards": 3,
    "number_of_replicas": 1,
    "refresh_interval" : "2s",        
    "analysis" : {
        "analyzer" : {                
            "index_analyzer" : {                    
                "tokenizer" : "nGram",
                "filter" : ["lowercase"]
            },
            "search_analyzer" : {                                                    
                "tokenizer" : "nGram",
                "filter" : ["lowercase"]
            }
        },                               
        "// you'll need lucene dep for this: filter" : {                
            "snowball": {
                "type" : "snowball",
                "language" : "English"
            }
        }
    }
}

}

и явставил документ, который содержит слово searching, если я ищу ключевое слово search, в нем ничего не сказано ...

не произойдет до индексации, или я что-то пропустил в конфигурации ....

Ответы [ 2 ]

5 голосов
/ 14 февраля 2011

Как выглядит ваш запрос?

ваш конфиг выглядит не очень хорошо. попробовать:

 ...
"index_analyzer" : {                    
   "tokenizer" : "nGram",
   "filter" : ["lowercase", "snowball"]
},
 "search_analyzer" : {                                                    
    "tokenizer" : "nGram",
    "filter" : ["lowercase", "snowball"]
}
},
"filter" : {
                "snowball": {
                    "type" : "snowball",
                    "language" : "English"
                }
            }
1 голос
/ 15 марта 2011

У меня были проблемы с переопределением анализатора "default_search" и "default_index".

Это работает, хотя.Вы можете добавить «index_analyzer» к значениям по умолчанию для всех строковых полей с неопределенными анализаторами в типе, если это необходимо.

curl -XDELETE localhost:9200/twitter

curl -XPOST localhost:9200/twitter -d '
{"index": 
  { "number_of_shards": 1,
    "analysis": {
       "filter": {
                "snowball": {
                    "type" : "snowball",
                    "language" : "English"
                }
                 },
       "analyzer": { "a2" : {
                    "type":"custom",
                    "tokenizer": "standard",
                    "filter": ["lowercase", "snowball"]
                    }
                  }
     }
  }
}
}'

curl -XPUT localhost:9200/twitter/tweet/_mapping -d '{
    "tweet" : {
        "date_formats" : ["yyyy-MM-dd", "dd-MM-yyyy"],
        "properties" : {
            "user": {"type":"string"},
            "message" : {"type" : "string", "analyzer":"a2"}
        }
    }}'

curl -XPUT http://localhost:9200/twitter/tweet/1 -d '{ "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out searching teaching, so far so good?" }'

curl -XGET localhost:9200/twitter/tweet/_search?q=message:search 

curl -XGET localhost:9200/twitter/tweet/_search?q=message:try 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...