Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / throw IOException / 25 сообщений из 35, страница 1 из 2
19.10.2019, 20:34
    #39878687
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Подскажите как правильно "оперировать" в throw IOException (пытаюсь "изъять" из класса данные и передать в activity java android, результат NULL!)

Класс из которого хочу взять:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
import org.apache.lucene.document.Document;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;

import java.io.IOException;
import java.text.ParseException;
 public  class LuceneTester
{ 
	//String indexDir = "file:///android_asset/Index"; String dataDir = "file:///android_asset/Data";
	String indexDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Index";
	String dataDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Data";
	Indexer indexer; 
	Searcher searcher;
	
	static String[] ddd;
	TextFileFilter filt1;
	public static void main(String[] args) 
	{ 
		LuceneTester tester; 
		try 
		{
			
			tester = new LuceneTester();
		
			tester.createIndex();
		
			tester.search("пример поиска");
		

		} 
		catch (IOException e)
		{ 
			e.printStackTrace(); 
		} 
		catch (ParseException e)
		{ 
			e.printStackTrace(); 
		} catch (org.apache.lucene.queryParser.ParseException e) {
			e.printStackTrace();
		}
	}
  void createIndex() throws IOException
	{ 
		indexer = new Indexer(indexDir); 
		int numIndexed;
	
		long startTime = System.currentTimeMillis();
		filt1 = new TextFileFilter();
		numIndexed = indexer.createIndex(dataDir, filt1);
		long endTime = System.currentTimeMillis();


		indexer.close(); 
		System.out.println(numIndexed+" File indexed, time taken: " +(endTime-startTime)+" ms");
	} 
void search(String searchQuery) throws IOException, ParseException, org.apache.lucene.queryParser.ParseException {
		searcher = new Searcher(indexDir);
		long startTime = System.currentTimeMillis();


		TopDocs hits = searcher.search(searchQuery);


		long endTime = System.currentTimeMillis(); 
		//System.out.println(hits.totalHits + " documents found. Time :" + (endTime - startTime));
		for(ScoreDoc scoreDoc : hits.scoreDocs)
		{
			Document doc = searcher.getDocument(scoreDoc);
			System.out.println("File: " + doc.get(LuceneConstants.FILE_PATH));
			ddd[2]= doc.get(LuceneConstants.FILE_PATH);

			


		}
		searcher.close();
	} 
}



кнопка в Активити андроид:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
    imageView.setOnClickListener(new ImageView.OnClickListener(){
            @Override
            public void onClick(View view) {


                LuceneTester luceneTester = new LuceneTester();
                try {
                    luceneTester.createIndex();
                    } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    luceneTester.search("пример поиска");

                } catch (IOException e) {
                    e.printStackTrace();
                } catch (ParseException e) {
                    e.printStackTrace();
                } catch (org.apache.lucene.queryParser.ParseException e) {
                    e.printStackTrace();
                }

                editText.setText(LuceneTester.ddd[2]); // Результат NULL то ест: java.lang.NullPointerException: Attempt to read from null array
...
Рейтинг: 0 / 0
19.10.2019, 21:25
    #39878706
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar Z,
По андроиду в андроид ветку.
Выдели строку кода с вопросом. Ничего непонятно. И код отформатируй.
...
Рейтинг: 0 / 0
19.10.2019, 21:31
    #39878707
Sergunka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
PetroNotC SharpZafar Z,
По андроиду в андроид ветку.
Выдели строку кода с вопросом. Ничего непонятно. И код отформатируй.

и положи в гитхаб проект, кто в теме просто быстро подправит.
...
Рейтинг: 0 / 0
19.10.2019, 21:50
    #39878713
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Sergunkaкто в теме
На ударит и пальцем о палец, ибо смысл, если человек не смотря на неоднократные просьбы и скриншоты, не в состоянии тэг src освоить
...
Рейтинг: 0 / 0
20.10.2019, 00:00
    #39878744
Sergunka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpashaSergunkaкто в теме
На ударит и пальцем о палец, ибо смысл, если человек не смотря на неоднократные просьбы и скриншоты, не в состоянии тэг src освоить

Да ладно. Ну, не совсем ТС идиот може и освоит
...
Рейтинг: 0 / 0
20.10.2019, 00:20
    #39878759
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Такой огромный исходник - а толку мало. И стектрейса не видно.
...
Рейтинг: 0 / 0
20.10.2019, 02:37
    #39878764
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpasha,

Скиньте пожалуйста ссылку на туториал плиз, именно по этой теме. Буду признателен.
...
Рейтинг: 0 / 0
20.10.2019, 08:46
    #39878772
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar Zименно по этой теме
По какой этой теме? Я не пойму что нужно, потому что код нечитаем.
...
Рейтинг: 0 / 0
20.10.2019, 09:02
    #39878773
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpasha,

Извиняюсь за неточный вопрос. Я имел в виду по тэгам SRC, Как именно загуглить в интернете чтобы найти справочник и понять что такое теги Src. Я новичок в объектном программировании.
...
Рейтинг: 0 / 0
20.10.2019, 10:51
    #39878778
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
О боги, причем тут объектное программирование. На этом форуме есть возможность форматирование сообщения, в том числе тэг src для публикации кода в читаемом виде. Когда постишь код, помещай его в тэг src иначе никто читать и тем более помогать не будет.
...
Рейтинг: 0 / 0
20.10.2019, 11:39
    #39878782
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpasha,
Для чайников типа меня покажите пожалуйста пример маленький, чтобы я в будущем уже не причинял неудобства . Сорри ещё раз.
...
Рейтинг: 0 / 0
20.10.2019, 12:37
    #39878796
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Пример чего, тэга src?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
import org.apache.lucene.document.Document;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;

import java.io.IOException;
import java.text.ParseException;
public class LuceneTester
{
//String indexDir = "file:///android_asset/Index"; String dataDir = "file:///android_asset/Data";
String indexDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Index";
String dataDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Data";
Indexer indexer;
Searcher searcher;

static String[] ddd;
TextFileFilter filt1;
public static void main(String[] args)
{
LuceneTester tester;
try
{

tester = new LuceneTester();

tester.createIndex();

tester.search("пример поиска");


}
catch (IOException e)
{
e.printStackTrace();
}
catch (ParseException e)
{
e.printStackTrace();
} catch (org.apache.lucene.queryParser.ParseException e) {
e.printStackTrace();
}
}
void createIndex() throws IOException
{
indexer = new Indexer(indexDir);
int numIndexed;

long startTime = System.currentTimeMillis();
filt1 = new TextFileFilter();
numIndexed = indexer.createIndex(dataDir, filt1);
long endTime = System.currentTimeMillis();


indexer.close();
System.out.println(numIndexed+" File indexed, time taken: " +(endTime-startTime)+" ms");
}
void search(String searchQuery) throws IOException, ParseException, org.apache.lucene.queryParser.ParseException {
searcher = new Searcher(indexDir);
long startTime = System.currentTimeMillis();


TopDocs hits = searcher.search(searchQuery);


long endTime = System.currentTimeMillis();
//System.out.println(hits.totalHits + " documents found. Time :" + (endTime - startTime));
for(ScoreDoc scoreDoc : hits.scoreDocs)
{
Document doc = searcher.getDocument(scoreDoc);
System.out.println("File: " + doc.get(LuceneConstants.FILE_PATH));
ddd[2]= doc.get(LuceneConstants.FILE_PATH);




}
searcher.close();
}
}


Форматирование уже лень на планшете править
...
Рейтинг: 0 / 0
20.10.2019, 14:36
    #39878846
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
С нормальным форматированием.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
import org.apache.lucene.document.Document;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;

import java.io.IOException;
import java.text.ParseException;

public class LuceneTester {
    //String indexDir = "file:///android_asset/Index"; String dataDir = "file:///android_asset/Data";
    String indexDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Index";
    String dataDir = "C:\\My Projects\\qonuntxt\\app\\src\\main\\assets\\Data";
    Indexer indexer;
    Searcher searcher;

    static String[] ddd;
    TextFileFilter filt1;

    public static void main(String[] args) {
        LuceneTester tester;
        try {

            tester = new LuceneTester();

            tester.createIndex();

            tester.search("пример поиска");


        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (org.apache.lucene.queryParser.ParseException e) {
            e.printStackTrace();
        }
    }

    void createIndex() throws IOException {
        indexer = new Indexer(indexDir);
        int numIndexed;

        long startTime = System.currentTimeMillis();
        filt1 = new TextFileFilter();
        numIndexed = indexer.createIndex(dataDir, filt1);
        long endTime = System.currentTimeMillis();


        indexer.close();
        System.out.println(numIndexed + " File indexed, time taken: " + (endTime - startTime) + " ms");
    }

    void search(String searchQuery) throws IOException, ParseException, org.apache.lucene.queryParser.ParseException {
        searcher = new Searcher(indexDir);
        long startTime = System.currentTimeMillis();


        TopDocs hits = searcher.search(searchQuery);


        long endTime = System.currentTimeMillis();
//System.out.println(hits.totalHits + " documents found. Time :" + (endTime - startTime));
        for (ScoreDoc scoreDoc : hits.scoreDocs) {
            Document doc = searcher.getDocument(scoreDoc);
            System.out.println("File: " + doc.get(LuceneConstants.FILE_PATH));
            ddd[2] = doc.get(LuceneConstants.FILE_PATH);


        }
        searcher.close();
    }
}
...
Рейтинг: 0 / 0
20.10.2019, 18:08
    #39878886
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Спасибо я вас понял буду иметь ввиду. Кстати насчёт основного вопроса. Мне кажется проблема в доступах чтения и записи в директории , хотя как я понимаю в манифесте для внутренней памяти под Андроид ничто не указывается, то есть доступ по умолчанию есть для чтения и записи. При запуске этого класса на прямую с IDE все работает отлично так как работает с локальными дисками на компьютере. А вот под виртуальный девайс или же прямо на девайсе андроида выдает лог Null. Попробую в гитхабе другой код найти более современный. Этот мне кажется старенький хотя такой удобненький ) так как работает с Lucene-core-3.6.0. Всем спасибо за понимание и советы.
...
Рейтинг: 0 / 0
20.10.2019, 18:11
    #39878889
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Люсин сейчас восьмой версии актуален https://mvnrepository.com/artifact/org.apache.lucene/lucene-core
...
Рейтинг: 0 / 0
20.10.2019, 19:34
    #39878906
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
mayton,

Спасибо за ссылку. На днях попробую.
...
Рейтинг: 0 / 0
20.10.2019, 19:55
    #39878924
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar Zхотя как я понимаю в манифесте для внутренней памяти под Андроид ничто не указывается, то есть доступ по умолчанию есть для чтения и записи.в манифесте указывают максимальные просимые права программы.
Но несмотря на это в коде все равно проверяется права так как в послндних версиях юзверь может права дать или не дать позже. Даже через год эксплуатпции.
Поэтому проверяй каждую строчку.
...
Рейтинг: 0 / 0
21.10.2019, 06:50
    #39879037
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
PetroNotC Sharp,
Спасибо за инфу, благодарен, проверю.
...
Рейтинг: 0 / 0
21.10.2019, 16:06
    #39879433
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar ZМне кажется проблема в доступах чтения и записи в директории
тебе не должно казаться. нужно освоить пошаговую отладку и проверить в каком месте что идет не так. По той же причине нельзя глотать ошибки с e.printStackTrace(), нужно их выводить в лог андроида. Кроме очевидной причины с нехваткой прав может существовать и не очевидная - например, что lucene не совместим с андроид
...
Рейтинг: 0 / 0
22.10.2019, 06:45
    #39879643
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpasha,
Да вы правы, проверил "серые" логи действительно наплыло много ошибок из стандартных библиотек и классов, вы точно уверены что lucene не совместим с андроидом, чтоб мне уже больше не "выплакивать" разными экспериментами и без того слепые глаза, и наконец заняться полезным делом ).
...
Рейтинг: 0 / 0
22.10.2019, 11:23
    #39879775
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar Zвы точно уверены что lucene не совместим с андроидом
я без понятия, но шансы сильно ненулевые, как и для любой серьезной библиотеки в которой совместимость с андроид не указана явно.
...
Рейтинг: 0 / 0
25.10.2019, 09:19
    #39881327
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
chpasha,

Совместимость есть, просто у меня руки кривые, вот пример :



" https://github.com/AndroidSources/Android-Lucene-Search-and-Highlighting"


Правда он работает с json, ну по идее этот мне тоже подходит если я ключевые слова буду сбрасывать в json и делать ссылки на файлы , что дополнительно прибавится мне работы и + дополнительного места , но если у кого появится идея или ссылка который строго индексирует файлы прямо на java Android то буду очень рад помощи!
...
Рейтинг: 0 / 0
25.10.2019, 09:21
    #39881330
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Переходя по ссылке в конце надо убрать ковычки (")
...
Рейтинг: 0 / 0
25.10.2019, 09:58
    #39881358
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
Zafar Z,
Попробуйте по другому задачу решить. Без этой либы.
Для этого задачу подробно опишите.
...
Рейтинг: 0 / 0
25.10.2019, 12:36
    #39881504
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
throw IOException
PetroNotC Sharp,


1. Имеем много текстовых файлов 1.txt, 2.txt, 3.txt ....
2. Внутри этих файлов тексты , слова, статьи.
3. Имплементирование lucene в проект Android Java.
4. Запуск индексирования файлов.
5. Поиск по индексированным файлам из MainActivity Android.

Знаю я не в тему, ну а вдруг котото сталкивался
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / throw IOException / 25 сообщений из 35, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]