Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
Подскажите как правильно "оперировать" в throw IOException (пытаюсь "изъять" из класса данные и передать в activity java android, результат NULL!)

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

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();
	} 
}


кнопка в Активити андроид:
    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


Сообщение было отредактировано: 21 окт 19, 07:56
19 окт 19, 20:34    [21998055]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
По андроиду в андроид ветку.
Выдели строку кода с вопросом. Ничего непонятно. И код отформатируй.
19 окт 19, 21:25    [21998080]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 2001
PetroNotC Sharp
Zafar Z,
По андроиду в андроид ветку.
Выдели строку кода с вопросом. Ничего непонятно. И код отформатируй.


и положи в гитхаб проект, кто в теме просто быстро подправит.
19 окт 19, 21:31    [21998082]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
Sergunka
кто в теме

На ударит и пальцем о палец, ибо смысл, если человек не смотря на неоднократные просьбы и скриншоты, не в состоянии тэг src освоить
19 окт 19, 21:50    [21998089]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Sergunka
Member

Откуда: Bay Area, CA
Сообщений: 2001
chpasha
Sergunka
кто в теме

На ударит и пальцем о палец, ибо смысл, если человек не смотря на неоднократные просьбы и скриншоты, не в состоянии тэг src освоить


Да ладно. Ну, не совсем ТС идиот може и освоит
20 окт 19, 00:00    [21998125]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
mayton
Member

Откуда: loopback
Сообщений: 42912
Такой огромный исходник - а толку мало. И стектрейса не видно.
20 окт 19, 00:20    [21998141]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
chpasha,

Скиньте пожалуйста ссылку на туториал плиз, именно по этой теме. Буду признателен.
20 окт 19, 02:37    [21998154]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
Zafar Z
именно по этой теме

По какой этой теме? Я не пойму что нужно, потому что код нечитаем.
20 окт 19, 08:46    [21998172]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
chpasha,

Извиняюсь за неточный вопрос. Я имел в виду по тэгам SRC, Как именно загуглить в интернете чтобы найти справочник и понять что такое теги Src. Я новичок в объектном программировании.
20 окт 19, 09:02    [21998176]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
О боги, причем тут объектное программирование. На этом форуме есть возможность форматирование сообщения, в том числе тэг src для публикации кода в читаемом виде. Когда постишь код, помещай его в тэг src иначе никто читать и тем более помогать не будет.
20 окт 19, 10:51    [21998191]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
chpasha,
Для чайников типа меня покажите пожалуйста пример маленький, чтобы я в будущем уже не причинял неудобства . Сорри ещё раз.
20 окт 19, 11:39    [21998201]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
Пример чего, тэга src?
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();
}
}

Форматирование уже лень на планшете править
20 окт 19, 12:37    [21998220]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
mayton
Member

Откуда: loopback
Сообщений: 42912
С нормальным форматированием.

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();
    }
}
20 окт 19, 14:36    [21998292]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
Спасибо я вас понял буду иметь ввиду. Кстати насчёт основного вопроса. Мне кажется проблема в доступах чтения и записи в директории , хотя как я понимаю в манифесте для внутренней памяти под Андроид ничто не указывается, то есть доступ по умолчанию есть для чтения и записи. При запуске этого класса на прямую с IDE все работает отлично так как работает с локальными дисками на компьютере. А вот под виртуальный девайс или же прямо на девайсе андроида выдает лог Null. Попробую в гитхабе другой код найти более современный. Этот мне кажется старенький хотя такой удобненький ) так как работает с Lucene-core-3.6.0. Всем спасибо за понимание и советы.
20 окт 19, 18:08    [21998349]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
mayton
Member

Откуда: loopback
Сообщений: 42912
Люсин сейчас восьмой версии актуален https://mvnrepository.com/artifact/org.apache.lucene/lucene-core
20 окт 19, 18:11    [21998353]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
mayton,

Спасибо за ссылку. На днях попробую.
20 окт 19, 19:34    [21998383]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z
хотя как я понимаю в манифесте для внутренней памяти под Андроид ничто не указывается, то есть доступ по умолчанию есть для чтения и записи.
в манифесте указывают максимальные просимые права программы.
Но несмотря на это в коде все равно проверяется права так как в послндних версиях юзверь может права дать или не дать позже. Даже через год эксплуатпции.
Поэтому проверяй каждую строчку.
20 окт 19, 19:55    [21998402]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,
Спасибо за инфу, благодарен, проверю.
21 окт 19, 06:50    [21998577]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
Zafar Z
Мне кажется проблема в доступах чтения и записи в директории

тебе не должно казаться. нужно освоить пошаговую отладку и проверить в каком месте что идет не так. По той же причине нельзя глотать ошибки с e.printStackTrace(), нужно их выводить в лог андроида. Кроме очевидной причины с нехваткой прав может существовать и не очевидная - например, что lucene не совместим с андроид
21 окт 19, 16:06    [21999178]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
chpasha,
Да вы правы, проверил "серые" логи действительно наплыло много ошибок из стандартных библиотек и классов, вы точно уверены что lucene не совместим с андроидом, чтоб мне уже больше не "выплакивать" разными экспериментами и без того слепые глаза, и наконец заняться полезным делом ).
22 окт 19, 06:45    [21999453]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
chpasha
Member

Откуда:
Сообщений: 8594
Zafar Z
вы точно уверены что lucene не совместим с андроидом

я без понятия, но шансы сильно ненулевые, как и для любой серьезной библиотеки в которой совместимость с андроид не указана явно.
22 окт 19, 11:23    [21999635]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
chpasha,

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



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


Правда он работает с json, ну по идее этот мне тоже подходит если я ключевые слова буду сбрасывать в json и делать ссылки на файлы , что дополнительно прибавится мне работы и + дополнительного места , но если у кого появится идея или ссылка который строго индексирует файлы прямо на java Android то буду очень рад помощи!
25 окт 19, 09:19    [22002229]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
Переходя по ссылке в конце надо убрать ковычки (")
25 окт 19, 09:21    [22002233]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
Попробуйте по другому задачу решить. Без этой либы.
Для этого задачу подробно опишите.
25 окт 19, 09:58    [22002272]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,


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

Знаю я не в тему, ну а вдруг котото сталкивался
25 окт 19, 12:36    [22002473]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
- в бд не думали?
- пример поискового запроса дайте
- пример куда результат поиска дайте
25 окт 19, 13:18    [22002510]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,

в бд уже закончил есть готовая апликация (google play-market: qonun.TJ) , при 1-2-3 словах идет хорошо, в 4 -5 - и более слов идет "вечно" - 1-1.5 минуты, правда поиск не в самом бд а через listview , реализацию lucene в бд не пробовал ещё.


PetroNotC Sharp,- пример поискового запроса дайте - легализация частного дома или имущества или земли - (но на таджикском языке)
PetroNotC Sharp,- пример куда результат поиска дайте - <TextView в Андроиде
25 окт 19, 13:32    [22002543]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
То есть аналог гугла?
Почему не андроид+веб сайт?
25 окт 19, 13:36    [22002551]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,

Проблема в контингенте спроса, народ у нас бедный, один раз скачать и 2-3 месяца в офлайне пользоваться до следующей возможности обновится.
25 окт 19, 13:42    [22002564]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
Понятно.
Название темы у тебя странное. Удачи!
25 окт 19, 13:49    [22002580]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,


Супер аналог не обязательно, но пробовал поис в люценке версии 3.6.0 на компьютере отличные результаты! Мне понравилось! конечно хотел бы и под lucene 8.0 попробоватӣ но примеров абсолютно нет, и я всего лишь новичек в джава.
25 окт 19, 13:51    [22002584]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
А) завелите новый вопрос с умным названием темы
Б) отделяйте код поискового движка от системного кода или ui.
C) все строчки кода на проверку ошибок. Ошибки сюда.
25 окт 19, 13:55    [22002593]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,

Отлично, спасибо, так и сделаю, просто сначала я думал у меня ошибки в исключениях, теперь после того как стал чуток опытнее попробую по другому, и логи ошибок буду сюда скидывать, только тему на джаву или на андраоид как вы думаете?
25 окт 19, 13:59    [22002601]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2463
Zafar Z,
На три ветки. Третья на 4pda сайте.
25 окт 19, 14:10    [22002620]     Ответить | Цитировать Сообщить модератору
 Re: throw IOException  [new]
Zafar Z
Member

Откуда:
Сообщений: 105
PetroNotC Sharp,

Отлично спасибо
25 окт 19, 14:12    [22002625]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Java Ответить